zoukankan      html  css  js  c++  java
  • 1.感觉是不一样的 无限分类

    1.拿到所有分类

    $model = $this->findModel($id);
    $allCategory = Category::find()->asArray()->all();
    $arrayCategoryIdName = ArrayHelper::map($allCategory, 'id', 'name');
    
    ArrayHelper::map映射函数使用:
    array (size=7)
      1 => string '手机' (length=6)
      2 => string '电脑' (length=6)
      3 => string '苹果' (length=6)
      4 => string '三星' (length=6)
      5 => string '台式机' (length=9)
      6 => string '笔记本' (length=9)
      7 => string '上网本' (length=9)

    2.取得父id

    $rootCategoryId = Category::getRootCatalogId($model->category_id, $allCategory);

    static public function getRootCalalogId($id = 0, $array = [])
    {
        if(0 == $id)
       return 0;
       foreach ((array)$array as $v) {
                if ($v['id'] == $id) {
                    $parentId = $v['parent_id'];
                    if(0 == $parentId)
                        return $id;
                    else
                        return self::getRootCatalogId($parentId, $array);
                }
            } 
    }

    3.得到一个父类的所有子类

    static public function getArraySubCatalogId($parentId = 0, $array = [])
        {
            $result[] = $parentId;
            foreach ((array)$array as $v) {
                if ($v['parent_id'] == $parentId) {
                    $tempResult = self::getArraySubCatalogId($v['id'], $array);
                    if ($tempResult) {
                        $result = array_merge($result, $tempResult);
                    }
                }
            }
            return $result;
        }
     // 同类商品  和 同大类商品
            $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();

    4.记录浏览日志

    // 记录浏览日志
            $historyProducts = [];
            $cookies = Yii::$app->request->cookies;
            if ($cookies->has('productHistory')) {
                $arrHistory = explode(',', $cookies->getValue('productHistory'));
    
                foreach ($arrHistory as $v) {
                    $product = Product::findOne($v);
                    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,
                ]));
            }
  • 相关阅读:
    jaxb解析xml工具类
    JQuery的父、子、兄弟节点查找方法
    jw player 配置参数
    jQuery判断当前元素是第几个元素&获取第N个元素
    正则表达式中test,match,exec区别
    php常用函数file
    php常用函数time
    php常用array函数
    php常用string函数
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/anArtist/p/5064987.html
Copyright © 2011-2022 走看看