2017-04-07 30 views
1

简而言之,我有一台表格机器,它具有指向SubCategory.id的FK关系由Gii正确设置。但是,机器中的FK列可以设置为NULL,因为操作字段不是强制性的。YII2 - 在gridView中处理NULL值 - 显示一列外键,其中一些可能为NULL

[ 
    'attribute'=>'machine Sub-category', 
    'value' => function ($model) { 
    return $model->subCategory->subcat_name; 
    }, 

    ], 

上面的代码显示FK不为NULL时的子类别名称。但是,如果FK为NULL,然后我让PHP错误:

试图让非对象

的财产我明白,错误是因为NULL值。 (因为我没有得到这个错误,如果我添加一些值而不是NULL)

所以我的查询是 - 对于FK列可能有NULL值,我如何让他们显示在GridView或Detailview?

回答

2

你可以检查子类别为nu​​ll

[ 
    'attribute'=>'machine Sub-category', 
    'value' => function ($model) { 
    if (isset($model->subCategory)){ 
     return $model->subCategory->subcat_name; 
     } else { 
     return ''; 
     } 
    }, 
], 
+0

感谢scaisEdge的快速回复。 – Rachna

+0

好,如果我的答案是正确的,请将其标记为已接受...看看这里如何 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

+0

如果可能,你能请检查这个(http://stackoverflow.com/questions/43062117/yii2-search-with-empty-param-throws-all-records) – Rachna