@arab789

Как обработать 0 в CGridView YII?

Делаю комментарии. Если коммент оставляет гость, в БД в колонке user_id остается "0", и при построении таблицы возникает ошибка:"Trying to get property of non-object". Как обработать ноль и указать, если ноль, то это гость?
$this->widget('zii.widgets.grid.CGridView', array(
	'id'=>'comment-grid',
	'dataProvider'=>$model->search(),
	'filter'=>$model,
	'columns'=>array(
		'id' => array(
                    'name' => 'id',
                    'headerHtmlOptions' => array('width'=>30),
                ),
                'status' => array(
                    'name' => 'status',
                    'value' => '($data->status==1)?"Доступно":"Скрыто"',
                    'filter' => array(0=>"Скрыто",1=>"Доступно"),
                ),
		'content',
                'page_id' => array(
                    'name' => 'page_id',
                    'value' => '$data->page->title',
                    'filter' => Page::all(),
                ),
		'created' => array(
                    'name' => 'created',
                    'value' => 'date("j.m.Y H:i", $data->created)',
                    'filter' => false,
                ),
                'user_id' => array(
                    'name' => 'user_id',
                    'value' => '$data->user->usename',
                    'filter' => User::all(),
                ),
		'guest',
		array(
			'class'=>'CButtonColumn',
                        'updateButtonOptions' => array('style' => 'display:none'),
		),
	),
));
  • Вопрос задан
  • 2328 просмотров
Решения вопроса 1
fornit1917
@fornit1917
'user_id' => array(
                    'name' => 'user_id',
                    'value' => function($data){return $data->user_id ? $data->user->username : 'guest';}
                    'filter' => User::all(),
                ),
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@maxyc_webber
Web-программист
у вас нет пользоваеля с ид 0

'user_id' => array(
'name' => 'user_id',
'value' => '$data->user->usename',
'filter' => User::all(),
),

вот тут надо сделать проверку, 0 или нет
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы