尝试对许多用户执行assignRole(),但它显示了对未定义方法assignRole()的调用这是空间拉拉虫吗?
$get_username = \App\Applicant::select('username')->whereIn('id', $ids);
$updateUser = \App\User::whereIn('username', $get_username);
$updateUser->assignRole('Applicant');
$updateUser->save();在这种情况下,批量assignRole()有什么解决方案吗?
发布于 2020-05-22 10:09:14
( \App\Applicant::select('username')->whereIn('id',
$get_username = $ids);
这是一个通过QueryBuilder进行的不完整查询。还有第二行。
当使用QueryBuilder时,您需要使用get()方法完成查询,以获得要迭代的集合。
正确的执行如下所示:
$get_username = \App\Applicant::select('username')->whereIn('id', $ids)->get();在不知道具体结果的情况下,您似乎想要检索一个用户名集合,您希望从这些用户名中获取用户模型。
您可以为批量更新执行以下操作(未经测试):
$users = User::whereIn('username', function($query) use ($ids) {
$query->select('username')
->from('applicants')->whereIn('id', $ids);
})->get();
foreach($users as $user) {
$user->assignRole('Applicant');
$user->save();
}https://stackoverflow.com/questions/61952222
复制相似问题