2015-09-20 75 views
1

我跟着Jeffrey Way的ManyToMany教程https://laracasts.com/series/laravel-5-fundamentals/episodes/21,我得到了一切,一切都很好。不過,我想爲我的多對多關係添加另一個特性,那就是一個'註釋',它提供了對象關係的更多信息。Laravel 5.1,Eloquent,ManyToMany評論

我有兩個型號:

條[ID,標題,正文] 分類[ID,標題]

這是一個多對多的關係,所以我創建數據透視表爲article_category。此表有兩列article_idcategory_id,他們在模型通過功能連接爲:

Article.php:

public function categories() 
{ 
    return $this->belongsTo('App\Category'); 
} 

& Category.php

public function articles() 
{ 
    return $this->belongsTo('App\Article'); 
} 

不過,我想補充另一個字段名爲comment到透視表,我可以描述爲什麼這篇文章被添加到這個特定的類別。將一列是沒有問題的,但我不知道如何從這個評論,可以說,文章如:

$articleCategoryComment = Article::find(1)->commentFromPivotTable; 

我總是可以定義另一個一對多的關係,並創建另一個表保存與評論字段[artice_id,category_id,comment]但我想知道有沒有更好/更簡單的方法。

此外,任何良好的數據庫結構資源將不勝感激。我會提供大量關於如何在MySQL中正確使用東西的例子,但是從頭開始解釋事情的書也是很好的建議。然而,目前我沒有時間去做太深,但它會被標記爲將來的閱讀。

謝謝!

回答

2

您應該在多對多關係中使用belongsToMany。如果您需要使用withPivot()方法在數據透視表上添加更多列。從文檔:

return $this->belongsToMany('App\Role')->withPivot('column1', 'column2'); 

您會在這裏找到更多的信息:http://laravel.com/docs/master/eloquent-relationships#many-to-many

+0

不知怎的,我成功地錯過了款。謝謝。 – dbr