Я применял разрешения Spatie Laravel и программировал для добавления разрешений к ролям. и столкнулся с ошибкой.
public function store(Request $request) {
//Validate name and permissions field
$this->validate($request, [
'name'=>'required|unique:'.config('permission.table_names.roles').'|max:10',
]
);
$name = $request['name'];
$role = new Role();
$role->name = $name;
$permissions = $request['permissions'];
$role->save();
//Looping thru selected permissions
if (count($permissions>0)){
foreach ($permissions as $permission) {
$p = Permission::where('id', '=', $permission)->firstOrFail();
//Fetch the newly created role and assign permission
$role = Role::where('name', '=', $name)->first();
$role->givePermissionTo($p);
}
}
return redirect()->route('roles.index')
->with('flash_message',
'Role'. $role->name.' added!');
}
Так что, если кто-то, пожалуйста, помогите мне решить эту проблему.
я получаю "3" @SougataBose
цифра "3"?
да, сэр @IjasAmeenudeen
Так что это не массив.
Вы используете входные массивы? как permissions[] по форме?
это флажок, я принимаю ввод, нет, я не использую массив @SougataBose
Используйте массив для разрешений, как упоминалось в @SougataBose. Это решит вашу проблему.
спасибо, я так и сделаю @IjasAmeenudeen






В форме отправки используйте это
<input type = "checkbox" name = "permissions[]" value = "{{ $r->id }}"> {{$r->display_name}} </li>
В контроллере ловите эти разрешения, как это
$permissions = $request->permissions;
dd($request['permissions'])- что вы получаете?