public function actionView($id) { $model = $this->findModel($id); $allCategory = Category::find()->asArray()->all(); $arrayCategoryIdName = ArrayHelper::map($allCategory, 'id', 'name'); $rootCategoryId = Category::getRootCatalogId($model->category_id, $allCategory); $arraySameRootCategory = Category::getArraySubCatalogId($rootCategoryId, $allCategory); // 同类商品 和 同大类商品 $sameCategoryProducts = Product::find()->where(['category_id' => $model->category_id])->orderBy(['sales' => SORT_DESC])->limit(3)->all(); $sameRootCategoryProducts = Product::find()->where(['category_id' => $arraySameRootCategory])->orderBy(['sales' => SORT_DESC])->limit(Yii::$app->params['productHotCount'])->all(); // 记录浏览日志 $historyProducts = []; $cookies = Yii::$app->request->cookies; if ($cookies->has('productHistory')) { $arrHistory = explode(',', $cookies->getValue('productHistory')); foreach ($arrHistory as $id) { $product = Product::findOne($id); if ($product) { array_push($historyProducts, $product); } } array_unshift($arrHistory, $id); $arrHistory = array_unique($arrHistory); while (count($arrHistory) > Yii::$app->params['productHistoryCount']) { array_pop($arrHistory); } Yii::$app->response->cookies->remove('productHistory'); Yii::$app->response->cookies->add(new Cookie(['name' => 'productHistory', 'value' => implode(',', $arrHistory), 'expire' => time() + 3600 * 24 * 30])); } else { Yii::$app->response->cookies->add(new Cookie(['name' => 'productHistory', 'value' => $id, 'expire' => time() + 3600 * 24 * 30])); } return $this->render('view', ['model' => $model, 'allCategory' => $allCategory, 'arrayCategoryIdName' => $arrayCategoryIdName, 'sameCategoryProducts' => $sameCategoryProducts, 'sameRootCategoryProducts' => $sameRootCategoryProducts, 'historyProducts' => $historyProducts]); }
<?php /* @var $this yii\web\View */ $this->registerCssFile('@web/css/category.css', ['depends' => \frontend\assets\AppAsset::className()]); $arrayPath = \common\models\Category::getCatalogPath($model->id, $allCategory); array_pop($arrayPath); foreach ($arrayPath as $path) { $category = \common\models\Category::findOne($path); $this->params['breadcrumbs'][] = ['label' => $category->name, 'url' => ['/category/view', 'id' => $category->id]]; } $this->params['breadcrumbs'][] = $model->name; $rootId = \common\models\Category::getRootCatalogId($model->id, $allCategory); $this->title = $model->name; ?> <div id="wrapper"> <!-- main body --> <?php echo \yii\widgets\Breadcrumbs::widget(['links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], 'options' => ['class' => 'here cle'], 'tag' => 'div', 'itemTemplate' => ' > {link}', 'activeItemTemplate' => ' > {link}']); ?> <div class="main cle"> <!-- left --> <div class="sidebar"> <div class="cate-menu" id="cate-menu"> <h3><a href="<?php echo Yii::$app->urlManager->createUrl(['category/view', 'id' => $rootId]); ?> "><strong><?php echo $arrayCategoryIdName[$rootId]; ?>