如何在Yi2中用json保存模型?
我有一个模型如下:如何在Yi2中用json保存模型?,json,model,yii2,Json,Model,Yii2,我有一个模型如下: $book = \backend\models\Book::find()->all(); 然后我可以通过以下语句访问特殊列值: $ID = $book[0]['ID']; 现在我想把这个模型转换成Json并保存在DB中。因此,我编写了以下代码: $json = json_encode($book); 然后我想加载并解码它 $object = json_decode($json) ; $ID = $object[0]['ID']; 但我不能。我不知道我该怎么做才好
$book = \backend\models\Book::find()->all();
然后我可以通过以下语句访问特殊列值:
$ID = $book[0]['ID'];
现在我想把这个模型转换成Json并保存在DB中。因此,我编写了以下代码:
$json = json_encode($book);
然后我想加载并解码它
$object = json_decode($json) ;
$ID = $object[0]['ID'];
但我不能。我不知道我该怎么做才好。是否可以将模型转换为json
有人能帮我解决这个问题吗?json\u decode默认情况下将数据转换为StdObject。如果要使用数组而不是对象,则应将assoc参数设置为true 如果json为空,则必须配置[fields][1]方法以更正数据导出。例如:
class Book extends ActiveRecord
{
// some code
public function fields()
{
return [
'id',
// others attributes of Book model
];
}
}
默认情况下,json_decode将数据转换为StdObject。如果要使用数组而不是对象,则应将assoc参数设置为true 如果json为空,则必须配置[fields][1]方法以更正数据导出。例如:
class Book extends ActiveRecord
{
// some code
public function fields()
{
return [
'id',
// others attributes of Book model
];
}
}
谢谢你的回答。我想将所有模型保存为数据库中的json或字符串,然后检索它并再次用作模型。所以我通过序列化解决了这个问题
谢谢你的回答。我想将所有模型保存为数据库中的json或字符串,然后检索它并再次用作模型。所以我通过序列化解决了这个问题 试试这个:
$book = \backend\models\Book::find()->asArray()->all();
$json = json_encode($book);
$data = json_decode($json, true);
print_r($data[0]['ID']);
查询时添加->asArray尝试以下操作:
$book = \backend\models\Book::find()->asArray()->all();
$json = json_encode($book);
$data = json_decode($json, true);
print_r($data[0]['ID']);
查询时添加->asArray请将json附加到问题。请将json附加到问题。谢谢您的回答。但它不起作用,因为当我使用$json=json_encode$book;然后dievar_dump$hs返回一些空数组:D:\Project Files\Git\SAME\backend\controllers\NewRequestController.php:60:string'[{},{},{},{},{},{},{},{},{},{},{},{}长度=34。问题在于将模型编码为json。谢谢您的回答。但它不起作用,因为当我使用$json=json_encode$book;然后dievar_dump$hs返回一些空数组:D:\Project Files\Git\SAME\backend\controllers\NewRequestController.php:60:string'[{},{},{},{},{},{},{},{},{},{},{},{}长度=34。问题在于将模型编码为json。