thinkphp6找不到商品分类下的信息,求助

$cate_id=input(‘cate_id’);
$categoryData=Db::name(‘category’)->find($cate_id);

 if($categoryData['parent_id']==0){
    $childCateStr='';
    $childCate=Db::name('category')->field('id,parent_id')->where('parent_id',$cate_id)->select()->toArray();
    $childCateArr=array_column($childCate,'id');//获取二维数组的id字段
    $childCateStr=implode(',',$childCateArr);//一维数组转字符串
    $childCateStr=$childCateStr.','.$cate_id;//拼接当前id,没有id产品可以不拼接
    $archivesData=Db::name('archives')->where('cate_id','in',$childCateStr)->paginate([
          'list_rows'=> 10,
          'query' => request()->param()]);
    }else{
    $archivesData=Db::name('archives')->where('cate_id',$cate_id)->paginate([
          'list_rows'=> 10,
          'query' => request()->param()]);
         }
讨论数量: 3

逐级向上找试试呢,cateid找不到就dumpquery数组

2年前 评论

首先确定数据库存不存在,2者,$categoryData用等0来判断结果吗

2年前 评论

试试下面的方式,创建分类模型,商品模型自行创建

class Category extends Model
{
    /**
     * 下级分类
     * @return \think\model\relation\HasMany
     */
    public function node(): \think\model\relation\HasMany
    {
        return $this->hasMany(get_class($this),'parent_id','id');
    }

    /**
     * 所有节点
     * @return \think\model\relation\HasMany
     */
    public function children(): \think\model\relation\HasMany
    {
        return $this->node()->with(['children']);
    }
    /**
    *模型关联商品
    */
     public function archives(){
      return $this->hasMany(archives::class);
     }
}

下级分类和分类绑定的商品


$cate_id=input(‘cate_id’);
$categoryData=Category::with(['node','node.archives'])->find($cate_id);
dd($categoryData->node->toArray());
2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!