簡體   English   中英

Laravel 5.4關系

[英]Laravel 5.4 relationship

嗨,我需要從表名稱Items顯示用戶項目。

我有3個模型。

用戶模型:

public function userItem()
{
    return $this->hasMany('App\UserItem', 'item_id');
}

UserItem模型:

public function user()
{
    return $this->belongsTo('App\User', 'user_id');
}

怎樣寫給Item Model才能使這種關系成功。 所以我可以顯示items table

如果我現在這樣做:

我從數據庫的user_items表中獲取信息。

當我這樣做@foreach(Auth::user()->userItem as $item)我得到了:

找不到列:1054“ where子句”中的未知列“ user_items.user_items”

我想你想使用多對多關系

您有2個模型用戶和項目

和3個表:-users -items -user_items

用戶模型應如下所示:

public function userItem()
{
    return $this->belongsToMany('App\Item','user_items','user_id','item_id');
}

項目模型:

public function user()
{
    return $this->belongsToMany('App\User','user_items','item_id','user_id');
}

並且您需要一個名為user_items的表

而且您不需要定義userItem模型,就可以刪除該模型中的關系

在刀片中使用以下代碼:

@foreach(Auth::user()->userItem as $item)

您表現出多對多的關系,但仍在使用一對多關系的方法。 對於多對多關系,請在模型中使用以下代碼:

//用戶模型:

public function userItem()
{
     return $this->hasMany('App\UserItem', 'user_items', 'user_id', 'item_id');
}

// userItem模型:

public function user()
{
     return $this->hasMany('App\User', 'user_items', 'item_id', 'user_id');
}

對於多對多關系,兩個模型都需要hasMany方法。

有關hasMany方法的參數的信息以及有關多對多關系的其他信息,請閱讀有關多對多關系的文檔: https : //laravel.com/docs/5.4/eloquent-relationships#許多一對多

希望這可以幫助。

暫無
暫無

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

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