我正在使用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
正如您所看到的,我尝试使用过滤器,但在尝试过滤时,如果另一个表链接到另一个表(文章链接到某个类别),则无法使用过滤器
希望这一切对你们所有人都有意义。
答案 0 :(得分:1)
您可以使用eager loading:
public function index()
{
$categories = categories::with('articles')->all();
return view('submissions', compact('categories'));
}
它将加载附加到每个类别的所有类别和文章。
或者,您可以使用has()
方法仅加载具有类别的文章:
$articles = article::has('category')->all();