我有2张桌子。员工表和角色表。在我的employee.show刀片中,我要呈现已分配或可分配的角色的下拉列表。我没有使用集体形式,并且由于所有教程都使用了这些东西而感到有些困惑。

我的控制器

 public function show($employee)
 {
     $employee = Employees::find($employee);
     $roles = Roles::pluck('role_name', 'id');
 return view('employees.show')->withEmployee($employee)->withRoles($roles);
}


还有我的show.blade。问题是如何从所有其他角色的数据库中提取完整列表,以便用户可以更新?

   <div class="form-group">
<label class="col-md-4 control-label" for="roles_id">Role</label>
<div class="col-md-4">
<select id="roles_id" name="roles_id" class="form-control">
<option value="{{ $employee->roles->id }}">{{ $employee->roles->role_name }}</option>
</select>
</div>
</div>

最佳答案

您在控制器中所做的事情似乎是正确的。但是,您的视图应遍历角色并为其创建选项。请记住,您已经使用了Role::pluck('role_name', 'id'),它将返回一个'id' => 'role_name'数组。

您可以通过使用三元语句将所选属性添加到员工的角色选项中来决定选择哪个属性,该语句将员工的role_id与我们当前在循环中查看的role_id进行比较。

尝试这样的事情:

<select name="roles_id">
    <option value="">Select...</option>
    @foreach ($roles as $roleId => $roleName)
        <option value="{{ $roleId }}"{!! $employee->role_id == $roleId ? ' selected' : '' !!}>{{ $roleName }}</option>
    @endforeach
</select>

关于php - Laravel在员工表下的相关表中显示下拉列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39769520/

10-13 00:44