2017-01-09 7 views
0

У меня следующий код на мой взгляд:Как декодировать данные JSON в CDetailView в Yii 1

<?php $this->widget('zii.widgets.CDetailView', array(
    'data' => $model, 
    'attributes' => array(
     'id', 
     'name', 
     array(
      'label' => 'Company', 
      'type' => 'raw', 
      'value' => 'CJSON::decode($data->json)["Block"]["p_1"]', 
     ), 
    ), 
)); ?> 

У меня есть поле под названием JSON в моей базе данных. Это поле содержит форматированные данные json. Я использовал следующий код для того, чтобы декодировать данные JSON:

array( 'label' => 'Company', 
     'type'=>'raw', 
     'value' =>'CJSON::decode($data->json)["Block"]["p_1"]', 
), 

Когда я использовал этот код JSON декодирования в CGridView он работал, и возвращаемые желаемое значение. Однако, когда я использовал этот код в CDetailView, он не работал. Виджет вернул этот код CJSON::decode($data->json)["Block"]["p_1"] вместо декодированных данных. Как я могу декодировать данные json в CDetailView?

ответ

1

Нет необходимости передавать строку в качестве значения для CDetailView. В качестве такового вы можете использовать:

'value' => CJSON::decode($model->json)["Block"]["p_1"], 
+0

Этот код возвращает значение «не указано» – phpdev

+0

Это ошибка? Если да, то какая полная ошибка? – topher

+0

Это не ошибка. Это значение для метки компании – phpdev