Php 我试图过滤那些只分配到主页类别的帖子(Laravel)

Php 我试图过滤那些只分配到主页类别的帖子(Laravel),php,database,laravel,Php,Database,Laravel,我正在使用Laravel进行一个项目,该网站是一个博客,我遇到了一些问题。我想在主页上浏览最近的帖子(文章),但只浏览那些已经被分配了类别的帖子(文章),但到目前为止,我只是浏览了所有的帖子(文章) 这是我的HomeController索引函数 public function index() { $articles = article::all(); $categories = categories::all(); return view('submissions

我正在使用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
@foreach($post形式提交)


@endforeach
正如您所看到的,我尝试过使用filter,但如果另一个表链接到另一个表(一篇文章链接到一个类别),则尝试使用filter时效果不一样

希望所有这些对你们都有意义。

你们可以使用:

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

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

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

是的,这很有效,谢谢!如果我只想浏览链接到某个类别的文章,例如,链接到名为“Weekly talk”类别的所有文章@Jake123如果你想一个接一个地显示所有类别及其所有文章,请使用嵌套foreach。如果只想显示一个类别中的文章,请在视图中执行以下操作:
@foreach($categories->where('name','Weekly talk')->first()->文章作为$article)
。这里您正在处理已加载的集合,因此不会执行任何新查询。我收到此错误“尝试获取非对象的属性”,代码:
@if(isset($submissions))@foreach($submissions->where('title','Test Category')->first()->articles as$article)
@Jake123该错误意味着没有标题为“测试类别”的提交。你可以做
{{dd($submissions)}}
来检查这一点。不过,我是在浏览文章而不是类别,这就是为什么它说没有名为“测试类别”的类别,谢谢你的帮助:)
$articles = article::has('category')->all();