简而言之,我有一台桌面机器,其FK指向SubCategory.id这种关系由Gii正确设置。但是,Machine中的FK列可以设置为NULL,因为Action字段不是必需的。
[
'attribute'=>'machine Sub-category',
'value' => function ($model) {
return $model->subCategory->subcat_name;
},
],
当FK不为NULL时,上面的代码显示子类别名称。但是如果FK为NULL,那么我得到PHP错误:
尝试获取非对象的属性
我理解错误是因为NULL值。 (因为如果我添加一些值而不是NULL,我不会收到此错误)
所以我的查询是 - 对于可能具有NULL值的FK列,如何让它们在GridView或Detailview中显示?
答案 0 :(得分:2)
您可以检查子类别是否为空
[
'attribute'=>'machine Sub-category',
'value' => function ($model) {
if (isset($model->subCategory)){
return $model->subCategory->subcat_name;
} else {
return '';
}
},
],