如何从Laravel中N-N关系表中的列获取值

时间:2016-04-01 23:59:58

标签: php mysql laravel eloquent

我遇到了问题。我有两张桌子,地方和美食,以及cuisine_place,在那张桌子上我有一个名为default的列(显示该菜是否是该地方的默认美食)。但我遇到的问题是我无法访问该列。

我该怎么办?

我想要做的就是让他们回答这个问题:

$places = Place::all()->with('cuisines')->withPivot('default');

类似的东西。

由于

2 个答案:

答案 0 :(得分:0)

打开Laravel Eloquent Relationships

的文档

阅读检索中间表列

您没有提供模型代码,因此很难为您提供准确的解决方案

答案 1 :(得分:0)

地方美食之间存在多对多关系。这种关系将在您的模型中以下列方式定义:

public function cuisines(){

    return $this->belongsToMany('Cuisine', 'cuisine_place');

}

上述内容将是 Place 类中的一个函数,该类引用其与 cuisines 表的关系。默认情况下,Eloquent会在 cuisine_place 表中选取外键(在您的情况下,它们可能会被称为 cuisine_id place_id )。如果要在调用上述关系函数时从该表中选取其他列,可以使用withPivot函数:

public function cuisines(){

    return $this->belongsToMany('Cuisine', 'cuisine_place')->withPivot('default');

}

现在,在 Place 类中调用cuisines()方法后,您将在与该表关联的对象中收到默认