0

我已經創建了三個表:如何爲Laravel 5.2中的表格選擇關係?

Student(ID, username), Teacher(ID, name) and Rating(ID, rating) 

在我的評分表我想學生的評價記錄到特定的教師。每個學生可以只對一位教師評分一次。他可以評價其他教師,但不是同一位老師。

在這種情況下,哪種關係更適合?我是Laravel的新手。

+0

歡迎來到StackOverflow。請閱讀我們的[問]頁面提示如何改善您的問題。 偉大的問題往往會提供更快,更好的社區回答。 一個好的開始是爲他人添加一個[mcve]來更快地排除故障。 – ochi

回答

1

由於每個學生只能對教師進行一次評估,因此最直接的方法是將student_idteacher_id列添加到Rating表中,並將它們用作關係中的外鍵。

然後你就可以定義在學生模型的關係:

class Student extends Model 
{ 
... 
    // Ratings given by the student 
    public function ratings() 
    { 
     return $this->hasMany('App\Rating'); 
    } 
} 

和教師模式:

class Teacher extends Model 
{ 
... 
    // Ratings received by the teacher 
    public function ratings() 
    { 
     return $this->hasMany('App\Rating'); 
    } 
} 

瞭解更多關於一個一對多的關係:

https://laravel.com/docs/5.3/eloquent-relationships#one-to-many

+0

適合我的要求的很多很適合。你能解釋一下我在模型中定義關係後需要做什麼嗎? – Sumit

+0

這取決於你需要做什麼。嘗試將其作爲一個具體問題來闡述。這真的不是給你一個完整教程的地方。這些信息有更好的來源,例如https://laracasts.com/ – Matey

+0

好的。無論如何感謝您的幫助 – Sumit