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 '';
}
},
],
简而言之,我有一台 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 '';
}
},
],