我学习了杰弗里·韦的许多教程,我得到了一切,一切都很好。不过,我想添加另一个功能到我的多对多关系,这是一个'评论'给一些更多的信息对象关系。
我有两个模型:
文章[编号、标题、文本]
类别[ID,标题]
这是一个多对多关系,所以我创建了一个透视表article_category。此表有两列article_idcategory_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

09-26 02:43