首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >隐藏Kartik DetailView Yii 2中的属性

隐藏Kartik DetailView Yii 2中的属性
EN

Stack Overflow用户
提问于 2017-01-09 16:23:49
回答 2查看 1.7K关注 0票数 2

我想在我的DetailView中隐藏属性,例如:

代码语言:javascript
运行
复制
[
    'attribute' => $attribute,
    'format' => 'raw',
    'value' => Yii::$app->formatter->asDatetime($model->$attribute).' par '.Yii::$app->myFormatter->asUser($model->visited_by),
    'visible' => false,
];

可见属性不起作用。我该怎么做?

你有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-01-09 22:23:09

如果您需要动态地确定什么是visible,那么您可以为te DetailView模型尝试template选项

代码语言:javascript
运行
复制
<?= DetailView::widget([
    'model' => $model,
    'attributes' => [
        'id',
        'title',
        'group_id',
    ],
    'template' => function ($item, $index, $widget){
        $classes = '';
        $classes .= ($item['attribute'] == 'your-attr' && $item['value'] == 'your-value') ? 'hidden' : '';

        return "<tr class='$classes'><th>$item[attribute]</th><td>$item[value]</td></tr>";
    }
]) ?>

如果您知道不会使用甚至不需要这些隐藏值,您还可以动态地确定传递给DetailView的属性,如下所示:

代码语言:javascript
运行
复制
<?php 
 // your logic to know what attributes display
  echo DetailView::widget([
   'model' => $model,
   'attributes' => $attributes
]) ?>
票数 0
EN

Stack Overflow用户

发布于 2017-01-10 04:16:08

您可以使用kartik's GridView以及引导类hiddenshow。参见Bootstrap docs

代码语言:javascript
运行
复制
use kartik\detail\DetailView;
....
[
    'attribute' => $attribute,
    'format' => 'raw',
    'value' => Yii::$app->formatter->asDatetime($model->$attribute).' par '.Yii::$app->myFormatter->asUser($model->visited_by),
    'rowOptions' => [
        'class' => ($i_want_to_see_it ? 'show' : 'hidden'),
    ],
];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41543755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档