我正在尝试做这样的事情:
$verfuegbarkeiten = Verfuegbarkeit::verfuegbar()->with('product', 'producer', 'producer.user', 'producer.user.ort')->where('product.kategorie_id', '=', $_GET['kat'])->get()->toArray();
我想使用'where'子句,所以我只能获得'product的属性'kategorie_id'与GET参数匹配的结果。我如何才能在某个关系中“在哪里”?对我来说这个值非常重要,因此在相关模型中编写修复函数不是一个好的解决方案。
每个提示都赞赏
答案 0 :(得分:2)
您需要whereHas()
,此处有文档:https://laravel.com/docs/5.2/eloquent-relationships#querying-relations
对于你的例子,这意味着这样的事情:
$kat = $_GET['kat'];
$verfuegbarkeiten = Verfuegbarkeit::verfuegbar()
->with('product', 'producer', 'producer.user', 'producer.user.ort')
->whereHas('product', function($query) use ($kat) {
$query->where('kat', $kat);
})
->get()
->toArray();
虽然我可能会补充说,在Laravel中通常不鼓励使用$_GET
。