我试图得到一个旧的选定值,并在选择选项中显示它,以及一个非选定的值,但是,当我尝试比较然后它看起来没有工作,到目前为止,我只能得到重复。实施它的最佳方法是什么?
这就是我的代码的样子。
控制器:
public function index()
{
$roles = Role::get();
$permissions = Permission::get();
return view('role.index', compact(['roles','permissions']));
}
角色视图:
@foreach($role->permission as $permissioninrole)
<option name="permissions[]" {{ old('name', $permissioninrole->name) == $permissioninrole->name ? 'selected' : '' }} value="{{$permissioninrole->id}}">{{$permissioninrole->name}}</option>
@endforeach
@isset($permissioninrole)
@foreach($permissions as $permission)
@if($permissioninrole->name != $permission->name)
<option class="rem" name="permissions[]" value="{{$permission->id}}">{{$permission->name}}</option>
@endif
@endforeach
@endisset
@empty($permissioninrole)
@foreach($permissions as $permission)
<option name="permissions[]" value="{{$permission->id}}">{{$permission->name}}</option>
@endforeach
@endempty
看起来如何。 HTML
<option name="permissions[]" selected value="15">role-create</option>
<option name="permissions[]" selected value="16">role-read</option>
<option name="permissions[]" value="15">role-create</option>
<option name="permissions[]" value="16">role-read</option>
...
如果角色'x'具有权限角色创建,应该如何。
<option name="permissions[]" selected value="15">role-create</option>
<option name="permissions[]" value="16">role-read</option>
...
解
@foreach($permissions as $key => $value)
<option name="permissions[]" {{ in_array($key +1, $role->permission()->pluck('id')->toArray()) ? 'selected' : '' }} value="{{$value->id}}">{{ $value->name }}</option>
@endforeach