繁体   English   中英

如何使用 Laravel Eloquent 按类别名称 select

[英]How to select article by category name with Laravel Eloquent

我对如何使用 laravel eloquent 按类别名称进行 select 文章有疑问。 我在 controller 中的索引 function:

$article = Article::with('category')->when(request()->q, function($article) {
            $article->where('category.name', 'like', '%'. request()->q . '%');
        })->latest()->paginate(10);

此代码返回错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'category.name' in 'where clause'

我的文章 model 已设置为属于类别

public function category()
    {
        return $this->belongsTo(Category::class,"category_id");
    }

但我并不奇怪它仍然无法正常工作。 谢谢你的帮助。

$article = Article::with('category')
    ->when(request()->q, function($article) {
        $article->whereHas('category',
            fn($q) => $q->where('name', 'like', '%'. request()->q . '%')
        );
    })
    ->latest()
    ->paginate(10);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM