[英]Laravel Eloquent ORM whereHas and where in foreach
我正在尝试进行以下工作,这可能是不好的做法,我对 Laravel 还很陌生,所以请告诉我!
我有一个名为Files
的模型,它们通过数据透视表链接到Keywords
。
我正在运行以下代码,但我得到Undefined variable: keyword_id
作为错误。
$keyword_ids = array(148, 4);
$files = new Files;
foreach($keyword_ids as $keyword_id)
{
$files = $files->whereHas('keywords', function($query)
{
$query->where('id', '=', $keyword_id);
});
}
非常感谢 !
您需要使用use
关键字让您的变量在闭包内可访问。
foreach($keyword_ids as $keyword_id)
{
$files = $files->whereHas('keywords', function($query) use ($keyword_id)
{
$query->where('id', '=', $keyword_id);
});
}
您可以不使用foreach并使用whereIn来检查id 是否与任何$keyword_ids值匹配。
$files = $files->whereHas('keywords', function($query) use ($keyword_ids)
{
$query->whereIn('id', $keyword_ids);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.