【问题标题】:Filter on related table with Laravel and eloquent使用 Laravel 和 eloquent 过滤相关表
【发布时间】:2015-04-21 10:27:36
【问题描述】:

我的方法是:

public function show(Tag $tag)
{
    $posts = $tag->posts;
    return view('posts.index',compact('posts'));
}

它工作正常,但我想获取帖子->user_id 是经过身份验证的用户的帖子。

public function show(Tag $tag)
{
    $posts = $tag->posts()->where('user_id',Auth::user()->id);
    return view('posts.index',compact('posts'));
}

如何过滤相关帖子表?

这是与数据透视表存在的多对多关系

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

    你所拥有的应该可以工作,但不要忘记在添加你的位置后get()结果:

    $posts = $tag->posts()->where('user_id',Auth::user()->id)->get();
    

    【讨论】:

    • 不要认为这会起作用,因为它是多对多关系,并且 post 表没有 user_id
    • 成功了! Posts 表有一个 user_id,它们之间有一个数据透视表 post_tag
    • 啊,我明白了。我认为发帖给用户是多对多的关系,但仔细想想就知道这没有多大意义;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 2014-01-15
    • 2015-04-04
    • 2015-04-10
    • 2016-10-15
    • 2014-08-30
    相关资源
    最近更新 更多