如何使用laravel函数传递额外的参数

时间:2018-07-04 07:10:29

标签: laravel eloquent laravel-5.4 laravel-5.5 laravel-5.6

我们如何通过带有功能的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

预先感谢

1 个答案:

答案 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应用快速修复中的错误。