【问题标题】:Yii Php - Hiding or showing column based on data value from other columnYii Php - 根据其他列的数据值隐藏或显示列
【发布时间】:2016-01-08 08:01:04
【问题描述】:

我目前在引导程序以在 GridView 中显示某些列时遇到问题。

我的代码中有这个:

$this->widget('bootstrap.widgets.TbGridView', array(
    'id' => 'viewrank-grid',
        'type'=>'striped bordered condensed',
    'cssFile' => Yii::app()->request->baseUrl . "/css/cgridview.css",
    'dataProvider' => $rank_model->search(),
    'columns' => array(
        array(
            'name' => 'id',
            'header' => 'rank_id',
        ),
        array(
            'name' => 'rank_title',
            'header' => 'Rank',
        ),
        array(
            'header' => 'Access',
            'value' => 'Privilege::model()->findByAttributes(array(\'module_id\'=>' . $module_model->id . ',\'rank_id\'=>$data->id)) ? \'Allowed\': \'Not Allowed\'',
        ),     
        array(
            'class' => 'CButtonColumn',
            'template' => '{view} {allow} {deny}',
            'htmlOptions' => array('width' => '10%;', 'style' => 'text-align: center'),
            'buttons' => array(
                'view' => array(
                    'label'=>'View', 
                        'imageUrl' => Yii::app()->request->baseUrl . "/images/gridview_icons/view.png",
                    'url' => 'Yii::app()->createUrl("management/viewrank",array("id"=>$data->id))',
                ),
                'allow' => array(
                    'label'=>'Allow', 
                        'imageUrl' => Yii::app()->request->baseUrl . "/images/gridview_icons/approve.png",
                    'url' => 'Yii::app()->createUrl("management/allowmodule",array("rank_id"=>$data->id,"module_id"=>' . $module_model->id . '))',
                    'visible' => '!(Privilege::model()->findByAttributes(array(\'module_id\'=>' . $module_model->id . ',\'rank_id\'=>$data->id)))',
                ),
                'deny' => array(
                    'label'=>'Deny', 
                        'imageUrl' => Yii::app()->request->baseUrl . "/images/gridview_icons/delete.png",
                    'url' => 'Yii::app()->createUrl("management/denymodule",array("rank_id"=>$data->id,"module_id"=>' . $module_model->id . '))',
                    'visible' => 'Privilege::model()->findByAttributes(array(\'module_id\'=>' . $module_model->id . ',\'rank_id\'=>$data->id))',
                )

            )
        )

    ),
)); 

这是该引导程序的视图。

有没有办法我可以添加一个条件,如果 rank_id = 2 则 图标被隐藏。?

提前致谢。

【问题讨论】:

    标签: php twitter-bootstrap yii


    【解决方案1】:

    在 CButtonColumn 允许按钮中更改可见条件

     'visible' => '(($data->id) && 
           !(Privilege::model()->findByAttributes(array(\'module_id\'=>' . 
              $module_model->id . ',\'rank_id\'=>$data->id))))',
                ),
    

    【讨论】:

      【解决方案2】:

      我看到 rank_id 是一个存在于数据提供者中的字段,所以它将在 $data 对象中可用:

      'visible' => '($data->rank_id!=2)',
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        相关资源
        最近更新 更多