laravel 5.4从数据库

时间:2017-05-23 16:48:32

标签: php database forms laravel dropdown

我想获取下拉选项值&来自数据库的名称,为此我的控制器代码是

 $roles = Role::pluck('role','user_id');
 return view('users.add_role',compact('roles'));

从下拉列表中获取此数据,我的视图文件代码是

<select name="role" class="form-control" >
          @foreach($roles as $role)
            <option value="{{ $role->user_id }} "> {{ $role->role }} </option>
          @endforeach
</select>

但它说错误

Trying to get property of non-object (View: C:\xampp\htdocs\auth2\resources\views\users\add_role.blade.php)

如果我只使用

<select name="role" class="form-control" >
      @foreach($roles as $role)
        <option value="{{ $role }} "> {{ $role }} </option>
      @endforeach
</select>

然后它显示表的角色列,但它不将选项值传递给数据库。那么生成期权价值的正确方法是什么?数据库名称?

2 个答案:

答案 0 :(得分:0)

您的SELECT source, destination FROM A, B WHERE A.source = B.destination 变量包含一个类似于

的数组
$roles

0和1索引在哪里是user_id。因此,您的[0] => 'your_role' [1] => 'your_role' 被设置为user_id数组的索引。只需执行$roles并检查输出。 $ key作为$ role将起作用。其中$ key将包含dd($roles)

user_id

答案 1 :(得分:0)

我使用laravel集合包更容易生成下拉列表, 你可以在你的刀片模板上做一些事情,它会为你呈现列表

{{Form :: select(&#39; role&#39;,$ role))}}