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

标签 php database laravel

我在一个项目中使用 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/

相关文章:

database - 我如何从 Windows 的启动中停止 SQL Server 2008 Express?

php - 新主机 - 权限问题?

php - 无法通过 shell 在 CentOS 7 上安装 phpMyAdmin

php - jQuery AJAX : Get a PHP array AND assign it to a Javascript variable

php - 如果数据库发生变化,自动刷新内容

php - Laravel 中首先按关系排序

php - 如何在 MYSQL 中使用 1 个查询更新多个表

mysql - 如何使用mysql在子查询结果中设置默认值

laravel - 将多个相同名称转换为一个名称,并且值在laravel中得到总和

php - 拉维尔 5 : Apache php http authentication