如何将字符串转换为数组yii2

时间:2018-05-31 11:09:29

标签: php yii2

我有产品型号和产品控制器:

public function actionGet($id) {
    Yii::$app->response->format = Yii\web\Response::FORMAT_JSON;
    return ['product' => Product::findOne($id)];
}

在我的数据库中,我获得了products.images列,其中包含带图像的数组:

["product.png", "product2.jpg"]

当我向/products/get?id=1发出请求时,我收到了字符串images的回复,但我需要一个带图像的数组。如何在产品型号中将images转换为数组?提前致谢!

1 个答案:

答案 0 :(得分:2)

您无法将此["product.png", "product2.jpg"]保存为数据库中的数组。这只是文字。

但是,您可以保存数组的json字符串代表。即:

public function beforeSave($insert)
{
    if(isset($this->images) && is_array($this->images))
      $this->images = \yii\helpers\Json::encode($this->images);
    return parent::beforeSave($insert);
}

然后你可以使用afterFind解码它:

public function afterFind()
{
    if(isset($this->images)
        $this->images = \yii\helpers\Json::decode($this->images);
    return parent::afterFind();
}