我有产品型号和产品控制器:
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
转换为数组?提前致谢!
答案 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();
}