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

YII2 - Handle NULL value in gridView- Display a column of foreign keys where some may be NULL

简而言之,我有一台 table 机器,它有一个 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 中?

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

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