YII2 - 处理gridView中的NULL值 - 显示一列外键,其中一些可能为NULL

时间:2017-04-07 06:00:23

标签: mysql yii2 yii2-advanced-app

简而言之,我有一台桌面机器,其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中显示?

1 个答案:

答案 0 :(得分:2)

您可以检查子类别是否为空

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