Yii2:在GridView中删除“(未设置)”,对于空值删除DetailView

前端之家收集整理的这篇文章主要介绍了Yii2:在GridView中删除“(未设置)”,对于空值删除DetailView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在GridView和ListView中删除或替换字符串(未设置)?
我知道的两种方式(现在):

格式化

nullDisplay of Formatter设置为null以外的值.您可以在全局配置或单个GridView或DetailView中执行此操作.

全局(通常在config / web.PHP或< application> /config/main.PHP文件中):

'components' => [
    ...
    'formatter' => [
        'class' => 'yii\i18n\Formatter','nullDisplay' => '',],...
],

在某些GridView中(与DetailView相同):

<?= GridView::widget([
    'dataProvider' => $myProvider,'formatter' => ['class' => 'yii\i18n\Formatter','nullDisplay' => ''],'columns'      => [
        ...
    ],]); ?>

设置值

可能不是那么优雅在某个GridView中:

<?= GridView::widget([
    'dataProvider' => $myProvider,'columns'      => [
        ...
        [
            'attribute' => 'some_attribute','format'    => 'raw','value'     => function (ModelClass $model) {
                if ($model->some_attribute != null) {
                    return $model->some_attribute; 
              //or: return Html::encode($model->some_attribute)
                } else {
                    return '';
                }
            },...
    ],]); ?>

或在一定的DetailView中:

<?= DetailView::widget([
    'model'      => $model,'attributes' => [
        ...
        [
            'attribute' => 'some_attribute','value' => $model->some_attribute != null ? $model->some_attribute : '',//or: 'value' => $model->some_attribute != null ? Html::encode($model->some_attribute) : '',]) ?>

两个提示

如果同时使用多种方法:设置值(直接或通过函数)将覆盖Grid / DetailView的格式化程序配置,这反过来将覆盖全局格式化程序配置.

您还可以定义与空字符串不同的内容.例如.如果使用引导,您可能需要使用“< span class =”glyphicon glyphicon-question-sign“>< / span>‘获取缺少值的符号.

猜你在找的PHP相关文章