У меня есть следующие коды в моем контроллере:
public function actionCabinet($id){
$this->render('cabinet', array('model'=>$this->loadJson($id)) );
}
public function loadJson($id)
{
$jsonfile=ChForms::model()->findByPk($id, array("select"=>"json"));
$decodedJson=json_decode($jsonfile, true);
return $decodedJson;
}
Данные сохраняются в поле json в формате ChForm в формате json. Я собираюсь преобразовать его в массив. Когда я запускаю это приложение, оно отображает следующее сообщение об ошибке:
json_decode() expects parameter 1 to be string, object given
Как я могу исправить эту ошибку?
Пожалуйста, попробуйте это,
public function loadJson($id)
{
$jsonfile=ChForms::model()->findByPk($id);
$decodedJson=json_decode($jsonfile->json, true);
return $decodedJson;
}
Вы можете использовать json_encode, как показано ниже,
public function loadJson($id)
{
$jsonfile=ChForms::model()->findByPk($id, array("select"=>"json"));
$decodedJson=json_encode($jsonfile, true);
return $decodedJson;
}