在 laravel 中创建一个下拉列表来选择用户角色 - laravel

Posted

技术标签:

【中文标题】在 laravel 中创建一个下拉列表来选择用户角色 - laravel【英文标题】:Creating a drop down list in laravel to select a users role - laravel 【发布时间】:2020-06-06 21:30:44 【问题描述】:

我正在使用 laravel 创建一个网站,我有一个创建新用户的表单,在其中我需要一个选项来显示选择用户角色的方式,我想以下拉列表的形式执行此操作列表,但我很难弄清楚..到目前为止我有这个(见下面我的create.blade.php),但它没有显示我在数据库表中的三个角色的数据,(这些是管理员、教师和学生)。

<div class="form-group">
   <label for="role">Role</label>
   <select name="roles[]" class="form-control">
   @foreach($roles as $role)
     <ul class="dropdown-menu" role="menu">
      $role 
     </ul>
   @endforeach 
   </select>
</div>

以下是我的表格,我是 laravel 的新手,所以只是想学习让自己变得更好,非常感谢任何帮助:)

【问题讨论】:

您是否使用任何 jquery 插件进行自定义选择下拉菜单? 您的选择元素名称应该只是“roles”而不是“roles[]”,然后您需要 ... 如果 $roles 是角色模型的容器,您可能应该使用 value=" $role->id " 【参考方案1】:

如果你使用原生 html select,你可以使用

<div class="form-group">
   <label for="role">Role</label>
   <select name="roles[]" class="form-control">
   @foreach($roles as $role)
     <option value=" $role->id ">  $role->nameOrWhatever  </option>
   @endforeach 
   </select>
</div>

【讨论】:

您好,谢谢您,正在返回以下错误“尝试获取非对象的属性”?【参考方案2】:

在你的用户控制器中

/**
 * Show the form for creating a new user
 *
 * @param  \App\Role  $model
 * @return \Illuminate\View\View
 */
public function create(Role $model)

    return view('users.create', ['roles' => $model->get(['id', 'name'])]);

然后,在你的 create.blade.php 中

<select name="role_id" id="input-role" required>
    <option value="">-</option>
    @foreach ($roles as $role)
        <option value=" $role->id "  $role->id == old('role_id') ? 'selected' : '' > $role->name </option>
    @endforeach
</select>

这会让你得到想要的

【讨论】:

以上是关于在 laravel 中创建一个下拉列表来选择用户角色 - laravel的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 JSON 数据和过滤参数过滤列表视图?

使用 C# 在 ASP.NET MVC 3 中创建级联下拉列表的最简单方法

如何在HTML / Javascript中创建可编辑的组合框?

编辑表时如何使用数据表在闪亮表中创建下拉列表?

如何在数据来自 API 的颤动中创建下拉列表?

如何在 Rails 中创建类别