[英]Display attribute using via() or viaTable() when there is multiple relations- YII2
这些表就是这样相互关联的。
在“供应商”模型中,该关系定义如下,以检索“零件表”的part_name,并将“供应商对零件”保留为连接表。
public function getSupplierToParts()
{
return $this->hasMany(SupplierToPart::className(), ['supplier_id' => 'id']);
}
public function getParts()
{
return $this->hasMany(Part::className(), ['id' => 'part_id'])->viaTable('supplier_to_part', ['supplier_id' => 'id']);
}
在详细视图中,我使用爆破显示part_name
[
'attribute'=>'Nature of business',
'value' => implode(\yii\helpers\ArrayHelper::map($model->parts, 'id', 'part_name')),
],
我的问题是如何在供应商机器模型而不是供应商模型中显示part_name? 在这种情况下,我认为供应商和零件供应商变得像两个联结表。 我该如何解决?
您可以通过通过供应商关系访问部分$model->supplier->parts
,假设你SupplierMachine模型的有关供应商的supplier
。 但是,您仍然必须考虑多个部分:
'value' => implode(",",
\yii\helpers\ArrayHelper::map($model->supplier->parts, 'id', 'part_name')
),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.