簡體   English   中英

基於用戶登錄的下拉數據 Laravel Eloquent

[英]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列。

重寫UserWarehouse模型中的關系方法如下:

用戶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.

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