[英]Dropdown data based on user login in Laravel Eloquent
我想在我的轉移產品視圖上顯示取決於用戶登錄的倉庫數據,我的用戶表中有一個warehouse_id
。 到目前為止,我在這里。
倉庫Model:
public function user()
{
return $this->belongsTo('User::class');
}
用戶 Model:
public function ownwarehouse()
{
return $this->hasMany('App\Warehouse');
}
轉controller:
$ownwarehouse= Warehouse::where('user_id', Auth::user()->id)->get();
return view('transfer.create', compact('ownwarehouse'));
在我的創建傳輸產品刀片上,我只有通過用戶登錄才能加載倉庫。
<select required name="from_warehouse_id" class="selectpicker form-control" data-live-search="true" data-live-search-style="begins" title="Select warehouse...">
@foreach($ownwarehouse as $warehouse)
<option value="{{$warehouse->id}}">{{$warehouse->name}}</option>
@endforeach
</select>
但下拉值如果為空,則沒有數據顯示在那里。 我還添加到 user_id 字段的倉庫表中,並嘗試使用<option value="{{$warehouse->user_id}}">{{$warehouse->name}}</option>
在下拉列表中獲取
但結果仍然是空的。 有什么建議嗎?
謝謝,
你需要在用戶和倉庫之間建立一對多的關系,這個條件是每個user
可以有多個warehouse
。 因此,這意味着您需要在倉庫表中有user_id
列。
重寫User
和Warehouse
模型中的關系方法如下:
在用戶model 中:
public function ownwarehouse()
{
return $this->hasMany('App\Warehouse', 'user_id');
}
在倉庫model 中:
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
您可以在user
實例上編寫查詢,如下所示:
$ownwarehouses = Auth::user()->ownwarehouse;
並將$ownwarehouses
傳遞給視圖。
定義要在倉庫 model 中使用的數據庫表。
protected $table = 'warehouses';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.