我学习了杰弗里·韦的许多教程,我得到了一切,一切都很好。不过,我想添加另一个功能到我的多对多关系,这是一个'评论'给一些更多的信息对象关系。
我有两个模型:
文章[编号、标题、文本]
类别[ID,标题]
这是一个多对多关系,所以我创建了一个透视表article_category
。此表有两列article_id
和category_id
,它们通过模型中的函数连接:
文章.php:
public function categories()
{
return $this->belongsTo('App\Category');
}
&类别.php
public function articles()
{
return $this->belongsTo('App\Article');
}
不过,我想在pivot表中添加另一个名为
comment
的字段,在这里我可以描述为什么将本文添加到这个特定类别中。添加列不是问题,但我不知道如何从文章实例检索此注释:$articleCategoryComment = Article::find(1)->commentFromPivotTable;
我可以定义另一个onetomany关系,并创建另一个表来保存字段
[artice_id,category_id,comment]
的注释,但我想知道是否有更好/更简单的方法。此外,任何关于数据库结构的良好资源都将受到极大的赞赏。我更喜欢一堆关于如何在mysql中正确地做事的例子,但是一本从头开始解释事情的书也是很好的推荐。不过,目前我没有时间去太深,但它将书签为未来阅读。
谢谢!
最佳答案
你应该在一段多对多的关系中使用“归属感”。如果要在数据透视表中添加其他列,请使用WithPivot()方法。从文档中:
return $this->belongsToMany('App\Role')->withPivot('column1', 'column2');
您将在此处找到更多信息:http://laravel.com/docs/master/eloquent-relationships#many-to-many