关于thinkphp 路径问题和仿美团开发遇到的一些问题

浏览:916 发布日期:2014/08/23 分类:求助交流
尝试使用tp开发类似美团的团购网站时遇到类别和地区检索时 会相互影响 表达能力有限 如图

会变成下面


代码如下?php
    namespace Home\Controller;
    use Think\Controller;
    class IndexController extends Controller {
                    protected $cid;  
                             protected $did; 
                             protected $url; 

                             public function _initialize(){
                                 $this->url = U('Home/Index/index','','');
                                 $this->cid=$_GET['cid'];
                                 $this->did=$_GET['did'];
                             }
            public function index(){
                  p($_GET);
                  $this->setCateAll();
                                        $this->setCityAll();
                       $this->display();
            }

            /**
             * 设置所有分类
             *分为两种情况
             *1.不存在cid 也就是没有参数则显示顶级分类
             *2.存在cid 显示自己分类
             */
                  public function setCateAll(){
                      $catemodel = D('Category');
                      $url=$this->url;
                      if (is_null($this->cid)){
                          $topcate=$catemodel->getCateLevel(0);
                          $tmparr=array();
                          $tmparr[]='<a class="active" href="'.$url.'">全部</a>';
                          foreach ($topcate as  $v) {
                              $tmparr[]='<a href=" '.$url.'/cid/'. $v['id'] .'">'. $v['catename'] .'</a>';
                          }
                          $this->assign('topcate',$tmparr);
                          return;
                      }
                      /**
                       *  存在cid的情况
                       * 1.存在cid  是顶级分类的id  pid为0
                       * 2.cid不是顶级分类的id
                       */
                       $pid=$catemodel->getCatePid($this->cid);
                                        $topcate=$catemodel->getCateLevel(0);
                                        $tmparr=array();
                       $tmparr[]='<a  href="'.$url.'">全部</a>';
                       foreach ($topcate as  $v) {
                                   if ($this->cid==$v['id'] || $pid == $v['id']) {
                                       $tmparr[]='<a class="active" href=" '.$url.'/cid/'. $v['id'] .'">'. $v['catename'] .'</a>';
                                   }else{
                                       $tmparr[]='<a  href=" '.$url.'/cid/'. $v['id'] .'">'. $v['catename'] .'</a>';
                                   }
                       }
                       $this->assign('topcate',$tmparr);

                       if ($pid==0) {
                           $soncate=$catemodel->getCateLevel($this->cid);
                       }else{
                           $soncate=$catemodel->getCateLevel($pid);
                       }
                                       if(is_null($soncate)) return;
                       $tmparr=array();
                       if ($pid==0) {
                           $tmparr[]='<a class="active" href="'.$url.'/cid/'.$this->cid.'">全部</a>';
                       }else{
                           $tmparr[]='<a  href="'.$url.'/cid/' . $pid .'">全部</a>';
                       }
                       foreach ($soncate as $v) {
                           if ($v['id'] == $this->cid) {
                               $tmparr[]='<a class="active" href=" '.$url.'/cid/'. $v['id'] .'">'. $v['catename'] .'</a>';
                           }else{
                               $tmparr[]='<a  href=" '.$url.'/cid/'. $v['id'] .'">'. $v['catename'] .'</a>';
                           }
                       } 
                                       $this->assign('soncate',$tmparr);
                  }

                  /**
                   * 设置地区
                   */
                  public function setCityAll(){
                      $citymodel=D('City');
                      $url=$this->url;
                      if (is_null($this->did)) {
                          //如果没有参数那么显示顶级地区
                          $topcity=$citymodel->getCityLevel(0);
                          $tmparr=array();
                          $tmparr[]='<a class="active" href="'.$url.'">全部</a>';
                          foreach ($topcity as $v) {
                              $tmparr[]='<a  href="'.$url.'/did/'.$v['id'].'">'.$v['cityname'].'</a>';
                          }
                          $this->assign('topcity',$tmparr);
                                   return;    
                      }
                                       /**
                                        * 如果存在参数did 分为两种情况
                                        *1.参数did为顶级地区的id 判断依据为pid是否为0
                                        *2.参数did 不是顶级地区的id
                                        *
                                        */ 
                                       $pid=$citymodel->getCityPid($this->did);
                                       $topcity=$citymodel->getCityLevel(0);
                       $tmparr=array();
                       $tmparr[]='<a  href="'.$url.'">全部</a>';
                       foreach ($topcity as $v) {
                           if ($this->did==$v['id'] || $pid == $v['id']) {
                               $tmparr[]='<a class="active" href="'.$url.'/did/'.$v['id'].'">'.$v['cityname'].'</a>';
                           }else{
                               $tmparr[]='<a  href="'.$url.'/did/'.$v['id'].'">'.$v['cityname'].'</a>';
                           }
                       }
                       $this->assign('topcity',$tmparr);

                       if ($pid==0) {
                           $soncity = $citymodel->getCityLevel($this->did);
                       }else{
                           $soncity = $citymodel->getCityLevel($pid);
                       }
                                       if(is_null($soncity)) return;
                                       $tmparr=array();
                       if ($pid==0) {
                           $tmparr[]='<a class="active" href="'.$url.'/did/'.$this->cid.'">全部</a>';
                       }else{
                           $tmparr[]='<a  href="'.$url.'/did/'. $pid .'">全部</a>';
                       }
                       foreach ($soncity as $v) {
                           if ($v['id'] == $this->did) {
                               $tmparr[]='<a class="active" href=" '.$url.'/did/'. $v['id'].'">'. $v['cityname'] .'</a>';
                           }else{
                               $tmparr[]='<a  href="'.$url.'/did/'.$v['id'] .'">'. $v['cityname'] .'</a>';
                           }
                       } 
                                       $this->assign('soncity',$tmparr);
                               }                 
    }

?>
最佳答案
评论( 相关
后面还有条评论,点击查看>>