例如table1和table2,并通过数据透视表连接在一起
table1: {
pivot: {
pivot_value1: 1
},
table2: {
....
}
}
代码:
table1::with(['table2' => function($q) {
$q->where('table2_property1', 'pivot_value1') // <= how to access pivot value?
}])
答案 0 :(得分:0)
在你定义关系的模型中,我们需要在建立关系时使用withPivot()
函数,例如在我们的table1模型中;
class Table1 {
public function table2() {
return $this->belongsToMany('App\Table2')->withPivot('column1', 'column2');
}
}
通常在数据透视表中有三个cloumns,另外如果我们添加了额外的列,我们可以说是column1&amp; column2,我们可以得到这些额外的cloumns的值。第1栏和第1栏column2是数据透视表中的extras列, 要访问这些列值:
$table1 = Table1::find(1);
foreach ($table1->table2 as $table) {
echo $table->pivot->column1;
echo $table->pivot->column2;
}
使用查询构建器的另一个解决方案:
Table1::whereHas('table2', function($q) {
$q->where('table2_property1', 'pivot_value1');
})
->get();
以上代码只是一个例子,您可以修改它以完善您的需求。希望它有所帮助。