要求是更新用户角色。角色可以为空(左侧空白),也可以是一个或多个(如form字段中所提供)roles[]。
这是视图表单:
@foreach ($roles as $role)
<div class="checkbox">
<label><input name="roles[]" type="checkbox" value="{{$role->id}}" {{ $user->roles->contains($role->id) ? 'checked' : '' }}>{{$role->name}}</label>
</div>
@endforeach
Run Code Online (Sandbox Code Playgroud)
UserController :: update()中的条件是:
if ($request->roles) {
// update user roles
}
Run Code Online (Sandbox Code Playgroud)
除了一种情况,一切正常。有时,用户必须留下而没有任何角色。
if($request->roles),isset($request->roles)和!empty($request->roles)..都给予同样的老式回复(null,'',true/flase)。
案例:分配了一个或多个角色时:
+request: ParameterBag {#41 ?
#parameters: array:6 [?
"_method" => "PUT"
"_token" => "a8oIPQFBMbhjanikX8v83qeOcfRE0N4UKTcTQDig"
"name" => "New User Name"
"email" => "newuser@testserver.asap"
"password" => ""
"roles" => array:2 [?
0 …Run Code Online (Sandbox Code Playgroud)