加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:29:11 所属栏目:PHP教程 来源:网络整理
导读:如何在GridView和ListView中删除或替换字符串(未设置)? 我知道的两种方式(现在): 格式化 将nullDisplay of Formatter设置为null以外的值.您可以在全局配置或单个GridView或DetailView中执行此操作. 全局(通常在config / web.php或 application /config/mai
如何在GridView和ListView中删除或替换字符串(未设置)?
我知道的两种方式(现在):

格式化

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

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

'components' => [
    ...
    'formatter' => [
        'class' => 'yiii18nFormatter','nullDisplay' => '',],...
],

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

<?= GridView::widget([
    'dataProvider' => $myProvider,'formatter' => ['class' => 'yiii18nFormatter','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>‘获取缺少值的符号.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读