我有主表和几个子表。
主表产品:productID / productNameID / productColorID
和子表
产品名称:产品名称ID/名称
productColor : productColorID / 名称
在主表中,我只插入子表的 ID。为了获得普通名称而不是 ID,我在产品模型中使用了函数:
public function getProductName()
{
return $this->hasOne(ProductName::className(), ['nameID' => 'productNameID']);
}
public function getProductColor()
{
return $this->hasOne(ProductColor::className(), ['colorID' => 'productColorID']);
}
如果我只在视图中使用模型,我可以编写$model->productName['name']
从子表中获取名称。
但我想创建 GridView。为此,我从 Gii 创建了默认 CRUD。如您所知,GridView 使用 SearchModel。当我在列表中执行此操作时,我只从主表中获得了 ID。可能是因为 SearchModel 中没有自定义函数我的意思是现在没有与存储名称的子表的连接。那么如何将我的主表连接到 GridView 中的子表?应该怎么做才能做到这一点?