你好,我試圖獲得所有屬於這兩個模型之間的樞軸的用戶的評論。我似乎無法繞過它,或者我的數據庫模式可能是錯誤的。無論如何,我會喜歡一些幫助。陷於雄辯的關係 - 樞紐和多態關係
目前我的模型是這樣的:
user.php的
class User extends Model
{
// Grab all the beers that this user has checked in to his personal profile
public function beers()
{
return $this->belongsToMany('App\Beer')->withTimestamps()->withPivot('rating', 'description');
}
}
Beer.php(樞關係)
class Beer extends Model
{
// polymorphic relationship grab all comments that belong to this beer
public function comments()
{
return $this->morphMany('App\Comment', 'commentable');
}
}
Comment.php(成立as polymorphic)
class Comment extends Model
{
public function commentable()
{
return $this->morphTo();
}
public function user()
{
return $this->belongsTo('App\User');
}
}
此處的代碼抓取屬於啤酒透視記錄的所有註釋。這很好,因爲$ user->啤酒考慮到我們正在處理特定的用戶配置文件,只能從特定的$用戶中找到透視記錄。
$user = User::find($id);
@foreach($user->beers as $beer)
@foreach($beer->comments as $comment)
{{ $comment }}
@endforeach
@endforeach
不幸的是,意見關係只着眼於從意見表commentable_id和commentable_type,不考慮當前USER_ID(我們當前正在查看的配置文件),所以當我看到一個用戶的另一個配置文件在他的個人資料中具有相同的beer_user樞紐組合,同樣的評論也顯示在那裏。
如何調用我的Beer.php模型的評論關係,以便考慮user_id?很明顯,我已經在我的評論表中添加了一個user_id。我以前試過這個問題,但我希望通過這次稍微詳細一點,現在人們可以幫助我,我也知道如何最終制定這個問題。
數據庫:
沒有嘗試鏈查詢,如$比爾 - >評論() - >在哪裏(「USER_ID」,「=」,$用戶> ID )?順便說一下,你是否打算收到用戶評論?如果您只是願意爲用戶提供啤酒,則不需要變形關係。 – Bartu
我不明白。你想要實現的是什麼查詢? – nextt1
抓住屬於特定用戶的所有啤酒,然後抓住放在該用戶啤酒上的所有評論。當我從我的示例執行查詢時,它可以工作,但查詢不考慮pivot記錄beer_id/user_id組合。 –