Yii - 如何在CGridView中隐藏特定记录的按钮?

Yii  - 如何在CGridView中隐藏特定记录的按钮?

问题描述:

I'm working in a project. How to hide just only a button for specific record in cgridview? enter image description here

Hope anyone can give me suggestion for this problem. Thanks all.

我正在一个项目中工作。 如何在cgridview中只隐藏特定记录的按钮? p> \ n

希望有人能给我这个问题的建议。 谢谢大家。 p> div>

You can use "visible" attribute for this button in your CButtonColumn and pass a PHP expression (within single quotes) to control when it gets shown and when it doesn't:

For example, the following example would make the object having attribute "name" equal to "Kasi" not be shown. You can adapt it to your needs.

[
    'class' =>'CButtonColumn',
    'template'=>'{view}{update}{delete}'
    'buttons'=>[
        'delete'=>[
            'visible'=>'($data->name !== "Kasi")'
        ]
    ]
]

Not much info, but here's the link to the official docs: docs for attribute 'visible'

in columns array add this

array(
        'class'=>'bootstrap.widgets.TbButtonColumn',
        'template'=>'{view}{update}',
        'buttons'=>array(
            'view' => array(
                'url'=>'Yii::app()->controller->createUrl("controller/action", array("id"=>$data[id]))',
            ),
            'update' => array(
                'url'=>'Yii::app()->controller->createUrl("controller/action", array("id"=>$data[id]))',
            ),
        ),
    ),