You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何循环筛选post_user_id与user_id匹配的帖子?

解决Laravel Blade筛选当前用户帖子的循环问题

你的写法有误,Blade的@foreach语法不支持直接在后面追加where条件,给你两种可行的实现方案:

方案一:控制器提前筛选(推荐)

在控制器层面就完成当前用户帖子的筛选,再将数据传递给视图,这符合MVC的设计逻辑,性能也更优:

// 控制器代码示例
$posts = Post::where('post_user_id', auth()->user()->id)->get();

之后在Blade视图里直接循环渲染即可:

@foreach($posts as $post)
    {{-- 这里编写帖子内容的展示代码 --}}
    <h3>{{ $post->title }}</h3>
    <p>{{ $post->content }}</p>
@endforeach

方案二:视图内条件判断(临时场景可用)

如果暂时不想修改控制器逻辑,也可以在循环内部添加@if判断筛选内容,但这种方式会把数据筛选逻辑混入视图层,不利于代码维护,不推荐长期使用:

@foreach($posts as $post)
    @if($post->post_user_id == auth()->user()->id)
        {{-- 编写帖子内容的展示代码 --}}
        <h3>{{ $post->title }}</h3>
        <p>{{ $post->content }}</p>
    @endif
@endforeach

注意:确保代码里的字段名和数据库一致,你的帖子表用的是post_user_id,别写成user_id了。

内容的提问来源于stack exchange,提问作者Memonik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:45:38