假设我有一个名为'Commodity'的模型,其category_id属于一个类别。
在Commodity.php中,我定义了这种关系:
public function category(){
return $this->belongsTo('App\Category');
}
现在,我想找到他们的类别名称包含'glass'的商品
我试过了:
$items = Commodity::orderBy('id', 'desc')->category()->where('title', 'LIKE', '%glass%');
但它填充了这个错误:
调用未定义的方法Illuminate \ Database \ Query \ Builder :: category()
答案 0 :(得分:2)
请阅读涵盖querying relations的官方文档。
有时您可能希望加载关系,但也为热切加载查询指定其他查询约束。这是一个例子:
$users = App\User::with(['posts' => function ($query) { $query->where('title', 'like', '%first%'); }])->get();
所以,关于你的问题我建议接下来尝试:
$commodities = App\Commodity::with(['category' => function ($query) {
$query->where('title', 'like', '%glass%');
}])->orderBy('id', 'desc')->get();