Я новичок в структуре Yii и только начал работать на существующем веб-сайте. У меня есть страница с листингом, и мое требование состояло в том, чтобы добавить новое поле «review_date_time», и мне удалось отобразить его в листинге. Теперь мой вопрос заключается в том, как изменить формат даты и как показать пробел, если в таблице нет даты. Теперь он отображается 0000-00-00 00:00:00, если нет даты.
Мой код для листинга
$this->widget('zii.widgets.grid.CGridView', array( 'id' => 'series-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array( array('header' => 'Category', 'name' => 'category.title'), 'exam_year', 'title', 'review_date_time', array( 'class' => 'CButtonColumn', ), ), ));
Если он показывает 0000-00-00 00:00:00, это означает, что это значение является значением по умолчанию в таблице db, поэтому вам придется использовать свойство value
для CDataColumn:
$this->widget('zii.widgets.grid.CGridView', array( 'id' => 'series-grid', 'dataProvider' => $model->search(), 'filter' => $model, // 'nullDisplay'=>'', 'columns' => array( array('header' => 'Category', 'name' => 'category.title'), 'exam_year', 'title', // 'review_date_time', array( 'name'=>'review_date_time', 'value'=>'$data->review_date_time=="0000-00-00 00:00:00"?"":$data->review_date_time' ) array( 'class' => 'CButtonColumn', ), ), ));
Или попробуйте свойство nullDisplay CGridView (если вы храните null и переопределяете afterFind для форматирования нулевого значения как 0000-00-00 00:00:00):
$this->widget('zii.widgets.grid.CGridView', array( 'id' => 'series-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'nullDisplay'=>'', 'columns' => array( array('header' => 'Category', 'name' => 'category.title'), 'exam_year', 'title', 'review_date_time', array( 'class' => 'CButtonColumn', ), ), ));