Видимость кнопки в 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)));",
))