簡體   English   中英

如何在yii2中的json中保存模型?

[英]How to save a model in json in 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'];

但是我不能。 我不知道該怎么做。 是否有可能將模型轉換為json?

誰能幫我解決這個問題?

json_decode默認將數據轉換為StdObject。 如果要使用數組而不是對象,則應將assoc參數設置為true

$object = json_decode($json, true) ;
$ID = $object[0]['ID'];

如果您的json為空,則必須配置[fields][1]方法來更正數據導出。 例如:

class Book extends ActiveRecord
{
    // some code

    public function fields()
    {
        return [
            'id',
            // others attributes of Book model
        ];
    }
}

嘗試這個:

$book = \backend\models\Book::find()->asArray()->all();
$json = json_encode($book);
$data = json_decode($json, true);
print_r($data[0]['ID']);

查詢時添加->asArray()

感謝所有答案。 我想將所有模型保存為json或字符串在數據庫中,然后檢索它並再次用作模型。 所以我已經通過serialize()解決了這個問題

$book = \backend\models\Book::find()->all();
$str = serialize($book);
$object = unserialize($str);
$ID = $object[0]['ID'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM