Как установить проверку как необязательную в Laravel - PullRequest
1 голос
/ 06 марта 2020

Я хочу сделать роли доступными только для администратора, он может выбирать роли для пользователей, и хотя пользователь хочет редактировать информацию профиля, он может видеть только свои роли, но не может редактировать свою роль, как сделать так, чтобы поле ролей было заблокировано для Пользователи Следующий код:

<div class="form-group"> 
{{ Form::label('role', 'Roles', array('class' => 'control-label mb-1')) }} <br/> 
{{ Form::select('roles[]',$roles,$selectedRoles,['class'=>'myselect','data-placeholder'=>'Select role(s)', 'multiple'] ) }} 
</div>

1 Ответ

1 голос
/ 06 марта 2020

Вы можете использовать следующее

use Illuminate\Validation\Rule;
//..

if(!$request->filled('roles')) {
   $request->merge(['roles' => []]);
}

$this->validate($request,[
    'name' => 'required',
    'email' => 'required|email', //'required|email|unique:users,email',
    'password' => [ 'string', 'min:8'],
    'roles' => 'nullable|array', 
    'roles.*' => [Rule::requiredIf($request->filled('roles')), 'exists:roles,id'],  
],[
    'name.required' => "Name field is required",
    'email.required' => "Email Field is Required",

    'email.email' => "Invalid Email Format ",

    'password.min' => "The Password Must be at Least 8 Characters or More",
    'roles.*' => "The Role is Required",
]);

//... 
...