1.修改商品模型中search方法把分類搜索再添加上擴(kuò)展分類的代碼
在商品模型中添加一個(gè)方法:根據(jù)分類ID搜索分類下所有商品ID
在GoodsModel.class.php中:
public function getGoodsIdByCatId($catId){
? ? ? ? //先取出所有子分類的ID
? ? ? ? $catModel=D('category');
? ? ? ? $children=$catModel->getChildren($catId);
? ? ? ? //和子分類放在一起
? ? ? ? $children[]=$catId;
? ? ? ? ? $children=? implode(',', $children);
? ? ? ? /**取出主分類或者擴(kuò)展分類在這些分類中商品 **/
? ? ? ? $this->field('id')->where(array(
? ? ? ? ? ? 'cat_id'=>array('in',$children),
? ? ? ? ))->select();
? ? }
具體步驟:
public function getGoodsIdByCatId($catId){
? ? ? ? //先取出所有子分類的ID
? ? ? ? $catModel=D('category');
? ? ? ? $children=$catModel->getChildren($catId);
? ? ? ? //和子分類放在一起
? ? ? ? $children[]=$catId;
? ? ? ? //? $children=? implode(',', $children);
? ? ? ? /**取出主分類或者擴(kuò)展分類在這些分類中商品 **/
? ? ? ? $gids=$this->field('id')->where(array(
//1.取出主分類下商品id
? ? ? ? ? ? 'cat_id'=>array('in',$children),
? ? ? ? ))->select();
//1.取出擴(kuò)展分類下商品id
? ? ? ? $gcModel=D('goods_cat');
? ? ? ? $gids1=$gcModel->fields('DISTINCT goods_id id')->where(array(
? ? ? ? ? ? 'cat_id'=>array('IN',$children)
? ? ? ? ))->select();
? ? ? //$sql="SELECT DISTINCT goods_id FROM p39_goods_cat WHERE cat_id IN($children)";
//合并數(shù)組
$gids=? array_merge($gids,$gids1);
? ? ? ? //二維轉(zhuǎn)一維
? ? ? ? $id=array();
? ? ? ? foreach($gids as $k=>$v){
? ? ? ? ? if(!in_array($v['id'], $id))
? ? ? ? ? ? $id[]=$v['id'];
? ? ? ? }
return $id;
? ? ? // var_dump($id);
? ? ? //? die;
? ? }