我在一个项目中使用 Laravel,该网站是一个博客,我遇到了一些问题。我想将最近的帖子(文章)拉到主页上,但只有那些已分配类别的帖子(文章),但到目前为止,它只是将它们全部拉过。
这是我的 HomeController Index 函数
public function index()
{
$articles = article::all();
$categories = categories::all();
return view('submissions', ['submissions' => $articles
->filter(function($categories) {
return $categories == 'Test Category';
})]);
}
这是我的主页 Blade View
@foreach($submissions as $post)
<a id="recentposts" href="/articles/{{ $post->id }}/{{ $post->title
}}" title="{{ $post->title }}">{{
$post->title }}</a><br/>
<hr>
@endforeach
如您所见,我尝试过使用过滤器,但如果另一个表链接到另一个表(一篇文章链接到一个类别),则在尝试过滤时效果不一样
希望这一切对你们都有意义。
最佳答案
您可以使用 eager loading :
public function index()
{
$categories = categories::with('articles')->all();
return view('submissions', compact('categories'));
}
它将加载所有类别和附加到每个类别的文章。
或者,您可以使用 has()
仅加载具有类别的文章的方法:
$articles = article::has('category')->all();
关于php - 我正在尝试过滤仅分配给主页类别的帖子(Laravel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45221190/