我们如何通过带有功能的Laravel传递额外的参数。我尝试了以下代码,但是没有运气。
$endpoints = MyModel::with(['myrelation' => function($q) use ($extraParams) {
foreach ($extraParams as $param)
{
$q->orWhere('ia.paramCode','like',$param.'%');
}
}])->get();
当我使用此代码时,它显示以下错误
Cannot use lexical variable $extraParams as a parameter name
预先感谢
答案 0 :(得分:2)
在PHP 7中,当您两次两次传递相同的变量(use ($extraParams)
时,会发生这种情况。简单的解决方法是将(use ($extraParams)
重命名为(use ($someThingElse)
$endpoints = MyModel::with([
'myrelation' => function($q) use ($extraParams){
foreach ($extraParams as $param) {
$q->orWhere('ia.paramCode','like',$param.'%');
}
}
])->get();
这是PHP 7应用快速修复中的错误。