[英]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.