Как мы можем передать дополнительные параметры в Laravel с помощью function. Я попробовал следующий код, но не повезло.
$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.1.7 @AdnanMumtaz
удалите $extraParams отсюда function($q,$extraParams)
Должен быть function($q) use ($extraParams, $otherParam)
function ($ q) use (& $ extraParams) {
@MKhalidJunaid Спасибо за вашу помощь. Я тоже попробую этот метод.






Это происходит в 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 с применением быстрого исправления.
Неопределенная переменная: allOtherParams
@aishazafar эта ошибка возникает, когда вы дважды передаете одно и то же имя переменной в параметрах функции. поэтому вам нужно изменить дополнительные параметры на что-то другое
Та же проблема, неопределенная переменная $ allOtherParams
@aishazafar $endpoints = MyModel::with(['myrelation'=>function($q) use ($extraParams){ foreach ($extraParams as $param) { $q->orWhere('ia.paramCode','like',$param.'%'); } }])->get(); используйте этот код
Какую версию PHP вы используете?