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

标签 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

提前致谢

最佳答案

在 PHP 7 中,当您两次传递同一个变量 (use ($extraParams) 时,会发生这种情况。简单的解决方法是将 (use ($extraParams) 重命名为 (使用($someThingElse)

$endpoints = MyModel::with([
    'myrelation' => function($q) use ($extraParams){
        foreach ($extraParams as $param) {
            $q->orWhere('ia.paramCode','like',$param.'%');
        }
    }
])->get();

这是 PHP 7 中的一个错误,请应用快速修复。

关于laravel - 如何使用 Laravel 函数传递额外参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167769/

相关文章:

laravel - 同步运行 Laravel 作业链

mysql - Eloquent 中的 IN 语句

php - 如何在 Laravel 中将 stdClass 的对象转换为数组

php - Laravel:orderBy 带有集合的列

php - LARAVEL 5.4 中的 SQL SELECT 查询 UPPER

mysql - Laravel 的回滚事务支持多态关系吗?

php - MySQL错误: This command is not supported in the prepared statement protocol yet

php - 目标 [Illuminate\Contracts\Debug\ExceptionHandler] 不可实例化

mysql - Laravel updateOrCreate 自增数据库

php - 使用whereHas Eloquent 关系查询