【发布时间】:2017-05-16 17:58:15
【问题描述】:
我有一个使用此方法从数据库中填充的下拉列表
public function view($id)
{
$id = request()->segment(2);
$items = Role::all(['name', 'display_name']);
return view('text.ServicesEditUser', compact('items'));
}
然后我在数据库中以这种方式显示选择框
<select name="user_role" class="form-control">
@foreach($items as $item)
<option value="{{$item->name}}">{{$item->display_name}}</option>
@endforeach
</select>
在创建记录期间正在使用生成的选择框。但是,我现在想编辑表单,并且我想将保存在数据库中的选项标记为选中。
在我知道name 和display_name 之前,我可以轻松做到这一点
<option value="admin" @if ($role->name == "admin")selected="selected" @endif>Admin</option>
<option value="user" @if ($role->name == "user")selected="selected" @endif>User</option>
<option value="superuser" @if ($role->name == "superuser")selected="selected" @endif>Superuser</option>
如何将数据库中保存的值标记为选中?
这是角色表
这是角色用户表
【问题讨论】:
-
Role如何保存在数据库中?还有为什么你把
id传给view函数却不使用呢? -
@DestinationN 我进行了更新以包含角色表的屏幕截图。
-
你能展示你如何获取用户的角色吗?视图中的$role包含什么?
-
@Sandeesh
$items = Role::all(['name', 'display_name']); -
@GeoffreyIsle
Role::all获取所有角色,而不是用户拥有的角色
标签: laravel