这就是这些表彼此相关的方式。
在供应商模型中,关系定义如下,以检索零件表的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']);
}
在详细信息视图中,我使用implode来显示part_name
[
'attribute'=>'Nature of business',
'value' => implode(\yii\helpers\ArrayHelper::map($model->parts, 'id', 'part_name')),
],
我的问题是如何在供应商 - 机器模型中显示part_name而不是供应商模型?在这种情况下,我认为供应商和供应商之间的关系变得像两个交汇点。我该如何解决这个问题?
答案 0 :(得分:1)
您可以通过$model->supplier->parts
通过供应商关系访问零件,假设您在SupplierMachine模型中与供应商的关系为supplier
。您仍然需要考虑多个部分:
'value' => implode(",",
\yii\helpers\ArrayHelper::map($model->supplier->parts, 'id', 'part_name')
),