为什么 lumen/laravel 在使用 find/findmany 时抛出错误 "Too few arguments passed"?
Why is lumen/laravel throwing error "Too few arguments passed" when using find/findmany?
我有一个 ID 数组,我想用它从 table 中获取匹配的记录。
代码如下所示:
$res = Extensiontables_Registry::findmany($ids[0])->get();
完整的上下文如下所示:
public function getData(Request $request){
$ad_groupsOfUser = $this->getRoles($request);
$ids = $ad_groupsOfUser->pluck('id');
$res = Extensiontables_Registry::findmany($ids[0])->get();
return response()->json($res, 200);
}
public function getRoles(Request $request)
{
$ad_groups = Ad_user::find($request->decodedToken->user_id)->ad_groups()->get();
//return response()->json($roles, 200);
return $ad_groups;
}
$ids 肯定是一个数组,里面有值,我已经调试过了。
但为什么它不能与 find/findmany 一起使用?
这是我得到的完整错误:
(1/1) ArgumentCountError
Too few arguments to function Illuminate\Support\Collection::get(), 0 passed in E:\aether-backend\app\Http\Controllers\UserController.php on line 49 and at least 1 expected
使用 find 后,它会为您获取数据。 get() 在 where 子句后使用
Model::find();
Model::where(['key' , 1])->get();
您可以使用 find 代替 findMany。
由于您尝试获取一个数据。好的方法是使用 whereIn 方法。
public function getData(Request $request){
$adGroupsOfUser = $this->getRoles($request);
$ids = $adGroupsOfUser->pluck('id');
$response = Extensiontables_Registry::whereIn($ids->toArray())->get();
return response()->json($response, 200);
}
使用whereIn()
方法:勾选here
$res = Extensiontables_Registry::whereIn('id',$ids)->get(); //$ids = [1,2,3,...]
我有一个 ID 数组,我想用它从 table 中获取匹配的记录。 代码如下所示:
$res = Extensiontables_Registry::findmany($ids[0])->get();
完整的上下文如下所示:
public function getData(Request $request){
$ad_groupsOfUser = $this->getRoles($request);
$ids = $ad_groupsOfUser->pluck('id');
$res = Extensiontables_Registry::findmany($ids[0])->get();
return response()->json($res, 200);
}
public function getRoles(Request $request)
{
$ad_groups = Ad_user::find($request->decodedToken->user_id)->ad_groups()->get();
//return response()->json($roles, 200);
return $ad_groups;
}
$ids 肯定是一个数组,里面有值,我已经调试过了。 但为什么它不能与 find/findmany 一起使用? 这是我得到的完整错误:
(1/1) ArgumentCountError
Too few arguments to function Illuminate\Support\Collection::get(), 0 passed in E:\aether-backend\app\Http\Controllers\UserController.php on line 49 and at least 1 expected
使用 find 后,它会为您获取数据。 get() 在 where 子句后使用
Model::find();
Model::where(['key' , 1])->get();
您可以使用 find 代替 findMany。
由于您尝试获取一个数据。好的方法是使用 whereIn 方法。
public function getData(Request $request){
$adGroupsOfUser = $this->getRoles($request);
$ids = $adGroupsOfUser->pluck('id');
$response = Extensiontables_Registry::whereIn($ids->toArray())->get();
return response()->json($response, 200);
}
使用whereIn()
方法:勾选here
$res = Extensiontables_Registry::whereIn('id',$ids)->get(); //$ids = [1,2,3,...]