/** * 数据解析 * * @param string $data 产品相册图片数据 * - $data内容应该为JSON Encode后的字符串序列 * @return boolean|array * - 为boolean时只能为FALSE,表示数据解析失败 * - 为array时表示指定产品相册图片信息,结构如下: * ~~~ * [ * [ * 'id' => '图片ID', * 'url' => '图片URL', * 'desc' => 图片描述' * ] * // 产品的其他图片..... * ] * ~~~ */ public function parse2o($data) { // XXX: 需要进行Model层封装 /* return ProductImage::find()->where([ 'product_id' => $data['product_id'], 'type' => ProductImage::TYPE_CATIONINDE, ])-> asArray()-> all(); */ return ProductImage::find()->where(['and', 'product_id=' . $data['product_id'], ['or', 'type=' . ProductImage::TYPE_CATIONINDE, 'type=' . ProductImage::TYPE_CATIONFIRST, 'type=' . ProductImage::TYPE_GOODPRODUCT]])->asArray()->all(); //return $data ? json_decode($data['attr_val'], true) : FALSE; }
public function actionDetail() { $slug = Yii::$app->request->get('slug'); if ($product = Product::findOne(['slug' => $slug, 'is_active' => 1])) { $this->link_canonical = $product->getLink(); if (!Redirect::compareUrl($this->link_canonical)) { $this->redirect($this->link_canonical); } $product_images = ProductImage::find()->where(['product_id' => $product->id])->all(); if ($this->is_mobile && !$this->is_tablet) { $product_image_suffix = ProductImage::$image_resizes['mobile']; } else { if ($this->is_tablet) { $product_image_suffix = ProductImage::$image_resizes['tablet']; } else { $product_image_suffix = ProductImage::$image_resizes['desktop']; } } return $this->render('detail', ['product' => $product, 'product_images' => $product_images, 'product_image_suffix' => $product_image_suffix]); } else { Redirect::go(); } }