我第一次玩laravel,我对如何实现链接表关系感到有些困惑。我有3个表:坦克, TankContent 和内容
我有以下型号:
坦克:
class Tank extends Model
{
public function getTankContent()
{
return $this->hasMany('App\TankContent', 'tankID', 'tankID');
}
}
TankContent:
class TankContent extends Model
{
public function getTank()
{
return $this->belongsTo('App\Tank', 'tankID', 'tankID');
}
public function getContent()
{
return $this->belongsTo('App\Content', 'contentID', 'contentID');
}
}
内容:
class Content extends Model
{
public function getContentTanks()
{
return $this->hasMany('App\ContentTank', 'contentID', 'contentID');
}
}
现在我试着打电话给说出tankID 2并获取其中的所有内容细节
$content = Tank::find(2);
$items = $content->getTankContent;
这将列出我的内容。但是,我如何将结果与TankContent模型中的 getContent()相关联?
提前致谢。希望我只需要解释,然后全部点击。
p.s我试过阅读https://laravel.com/docs/5.5/eloquent-relationships#many-to-many而我仍然难倒!
答案 0 :(得分:0)
不需要TankContent,belongsToMany关系方法属于Tank和Content模型。
https://laravel.com/docs/5.5/eloquent-relationships#many-to-many
从这里可以看到没有RoleUser模型,模型只有Role和User。这些模型上的belongsToMany关系定义了中间或数据透视表是role_user。
您还可以使用链接到belongsToMany方法的withPivot()来定义该关系上的其他字段。 (阅读"检索中间表列")。因此,可能没有理由为中间/数据透视表提供单独的模型。