Видимость кнопки в cgridview на основе равенства полей двух моделей

У меня есть этот массив, который представляет данные для кнопки в виджете CGridView в YII.

array(
        'Button' =>
        array(
                'imageUrl'=>Yii::app()->request->baseUrl.'/images/image.png',
                'url'=>'Yii::app()->createUrl("controller/action", array("column"=>$data->column))',
                'visibile'=>'$visibile',
        ))

Мне нужно $visibile, чтобы быть истинным или ложным на основе этой функции:

if (array_key_exists(0 , Table::model()->findAllByAttributes(array('column' => $model->column)))){
$visible = true;    
}
else {
$visibile = null;
}

где Table::model - это не та же самая модель сетки. Как я могу изменить видимость кнопки, основываясь на равенстве значения в записи этой модели и модели представления?

Я надеюсь, что мой вопрос был ясен, спасибо всем!

2 ответа

Вы могли бы сделать это в Yii

array(
    'Button' =>
    array(
        'imageUrl'=>Yii::app()->request->baseUrl.'/images/image.png',
        'url'=>'Yii::app()->createUrl("controller/action", array("column"=>$data->column))',
        'visibile'=>function($index, $data) {
            // the logic, where $data is the model for that row
            // ...

            // return true(visible) or false(invisible)
        },
    ))

Следующее может работать для вас:

array(
    'Button' =>
    array(
            'imageUrl'=>Yii::app()->request->baseUrl.'/images/image.png',
            'url'=>'Yii::app()->createUrl("controller/action", array("column"=>$data->column))',
            'visibile'=>"return array_key_exists(0 , Table::model()->findAllByAttributes(array('column' => $model->column)));",
    ))
Другие вопросы по тегам