簡體   English   中英

laravel 5.4表格下拉數據庫

[英]laravel 5.4 form dropdown from database

我想從數據庫中獲取下拉選項值和名稱,為此我的控制器代碼是

 $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>

然后它顯示表的角色列,但它不將選項值傳遞給數據庫。 那么從數據庫生成選項值和名稱的正確方法是什么?

你的$roles變量包含一個看起來像的數組

[0] => 'your_role'
[1] => 'your_role'

0和1索引在哪里是user_id。 因此,您的user_id被設置為$roles數組的索引。 只需執行dd($roles)並檢查輸出。 $ key作為$ role將起作用。 其中$ key將包含user_id

 @foreach($roles as $key => $role)
      <option value="{{ $key }} "> {{ $role }} </option>
    @endforeach

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

{{Form :: select('role',$ role))}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM