我正在尝试过滤仅分配到主页的类别的帖子(Laravel)

时间:2017-07-20 17:14:19

标签: php database laravel

我正在使用Laravel进行项目,该网站是一个博客,我遇到了麻烦。我想把最近的帖子(文章)拉到主页上,但只是那些已经分配了类别的帖子,但到目前为止它只是将它们全部拉过来。

这是我的HomeController索引功能

   public function index()
{
    $articles = article::all();
    $categories = categories::all();

    return view('submissions', ['submissions' => $articles
    ->filter(function($categories) {
        return $categories == 'Test Category';
    })]);


}

这是我的主页刀片视图

@foreach($submissions as $post)
    <a id="recentposts" href="/articles/{{ $post->id }}/{{ $post->title 
    }}" title="{{ $post->title }}">{{ 
    $post->title }}</a><br/>
    <hr>
@endforeach

正如您所看到的,我尝试使用过滤器,但在尝试过滤时,如果另一个表链接到另一个表(文章链接到某个类别),则无法使用过滤器

希望这一切对你们所有人都有意义。

1 个答案:

答案 0 :(得分:1)

您可以使用eager loading

public function index()
{
    $categories = categories::with('articles')->all();

    return view('submissions', compact('categories'));
}

它将加载附加到每个类别的所有类别和文章。

或者,您可以使用has()方法仅加载具有类别的文章:

$articles = article::has('category')->all();