3
我有一個處理用戶信息的應用程序,我們收集的數據之一是他們參加的學校。我們有一個User
對象,School
對象和一個UserSchool
對象。在Laravel中使用關係用橋表提供口才
這是user_schools表:
user_id (int),school_id (int)
隨着例如以下記錄:
100, 20
200, 500
200, 10
300, 10
我試圖讓所有學校當前用戶(用戶說200) 。這是我的UserSchool對象:
class UserSchool extends Model
{
var $table = 'user_schools';
function user() {
return $this->belongsTo('User');
}
function school() {
return$this->belongsTo('School');
}
}
在User
我有如下關係式:
public function schools()
{
return $this->hasManyThrough('School', 'UserSchool');
}
public function userSchools()
{
return $this->hasMany('UserSchool');
}
當我var_dump($user->schools)
我沒有得到任何結果,即使我知道自己應該返回多個School
秒。我究竟做錯了什麼?我確定這個問題以前一定是問過的,但我不知道這個中間類型關係的實際術語是什麼(橋接表?樞軸表?)。
編輯:無論哪種方式,我看過的大多數例子都沒有奏效。我也試過:
public function schools()
{
return $this->hasManyThrough('School', 'UserSchool', 'school_id');
}
工作得很好,但是對於PHP 5.4而言,必須將School :: class更改爲「School」。謝謝。我會認爲一個hasManyThrough關係是需要的,所以謝謝你以正確的方式指點我。 – StackOverflowed