在我的数据库中,我有一个roles
表有三个角色:Admin、Regional Admin和User
从我的控制器,我试图选择角色,其中角色名称不等于"Admin"
以下是我的eloquent
$roles = Role::pluck('name','name')->where('name','<>','Admin')->get();
但是这会给我一个错误,说
Too few arguments to function IlluminateSupportCollection::get(), 0 passed..
当我把eloquent
改成
$roles = Role::pluck('name','name')->where('name','<>','Admin')->all();
它可以工作,但它会给我所有的记录,包括'Admin'
为了执行下面的查询,
我需要修复哪里?SELECT * FROM `roles` WHERE name <> 'Admin'
我在刀片中使用这些值作为下拉选项
{{ Form::select('roles',array_merge(['' => 'Veuillez sélectionner un rôle'], $roles ), Request::old('Roles'),array('class' => 'form-control txt_txt')) }}
嗯,我会尝试使用!=而不是<>,否则看起来很好:)
$roles = Role::pluck('name','name')->where('name','!=','Admin')->all();
**根据问题的变化进行编辑
// Get the name of all Roles except 'Admin' as array
$names = Role::where('name','<>','Admin')->pluck('name')->toArray();
// use $names as keys and values
$roles = array_combine($names, $names);
则$roles
可以在array_merge(['' => 'Veuillez sélectionner un rôle'], $roles )
中作为叶片中使用的值。