Есть ли способ абстрагировать это Замыкание к моей модели MerchantUser аналогично использованию областей действия на with()
?
Пока у меня есть это, которое работает:
$merchant_user->load(['permissions' => function ($query) use ($merchantId) {
if ($merchantId) {
$query->where('merchant_user_permission.merchant_id','=', $merchantId);
}
}]);
Но я бы хотел сделать что-то вроде этого:
$merchant_user->loadPermissions($merchantId);
В моей модели:
public function scopeLoadPermissions($query, $merchantId = null)
{
return $query->load(['permissions' => function ($q) use ($merchantId) {
if ($merchantId) {
$q->where('merchant_user_permission.merchant_id','=', $merchantId);
}
}]);
}
, которая в данный момент просто возвращает ошибку:
"Метод Illuminate \ Database \ Query \ Builder :: load не существует."