【发布时间】:2021-09-21 12:25:41
【问题描述】:
下面的代码旨在使用服务 ID 检索所有服务提供者
public function getProvidersByPackage($id = null){
$package_id = $id;
$providers = ServiceProvider::whereHas('services', function($query) {
$query->where('packages.id', 1);
})->get();
dd($providers);
}
我想用传递给外部函数 getProvidersByPackage() 的变量 $id 替换常量 1 我的问题是当我尝试以下操作时
public function getProvidersByPackage($id = null){
$package_id = $id;
$providers = ServiceProvider::whereHas('services', function($query) {
$query->where('packages.id', $id);
})->get();
dd($providers);
}
我得到错误 $id is not defined 当我尝试时
public function getProvidersByPackage($id = null){
$package_id = $id;
$providers = ServiceProvider::whereHas('services', function(&$package_id, $query) {
$query->where('package.package_id', $package_id);
})->get();
}
我得到下面的 ArgumentCountError
Too few arguments to function
App\Http\Controllers\ShopController::App\Http\Controllers\{closure}(), 1 passed in
/var/www/html/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php on line 1207
and exactly 2 expected
我做错了什么?
【问题讨论】:
标签: laravel-8