PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

分享关于表关联 三级关联 多级关联查询的方法 模型关联 关联查询 关联

管理员 2024-12-14
Fastadmin
10

问题

  • 在社区看到好多人问关联 三级关联的问题
  • 小弟在这里给大家分享下拙见
  • 抛转引玉

    模型设计

  • 假设我的情况是这样的
  • 我有多个店铺
  • 每个店铺里有多个仓库
  • 仓库中有多类商品
  • 每类商品又指定了一个员工来管理

    数据表大概设计

    零、管理员 user

    字段类型注释
    idint10id主键
    namechar10名字

    一、店铺 shop

    字段类型注释
    idint10id主键
    namechar10名字
    user_idint10管理员ID

    二、仓库 store

    字段类型注释
    idint10id主键
    namechar10名字
    shop_idint10所属店铺的id

    三、商品 product

    字段类型注释
    idint10id主键
    namechar10名字
    store_idint10所属仓库的id

    对应数据表的model大概样子

    零、管理员 user

     public function shop(){//我有多个店铺return $this->hasMany('shop', 'shop_id', 'id', [], 'LEFT');     }

    一、店铺 shop

     public function store(){//店铺有许多的仓库return $this->hasMany('store', 'store_id', 'id', [], 'LEFT');     } public function user(){//店铺有一个管理员return $this->hasOne('user', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0); }

    二、仓库 store

     public function shop(){//仓库属于店铺return $this->belongsTo('shop', 'shop_id', 'id', [], 'LEFT')->setEagerlyType(0); } public function product(){//仓库有许多类商品return $this->hasMany('product', 'store_id', 'id', [], 'LEFT');     }

    三、商品 product

     public function store(){//商品属于仓库return $this->belongsTo('store', 'store_id', 'id', [], 'LEFT')->setEagerlyType(0); }

    在控制器中查询

    已知管理员id=666查 管理员->店铺->仓库->商品

    $user_id=666;//已知管理员的id$user=model("user")->get($user_id);$user->shop;//结果是多个商店foreach($user['shop'] as $v){ $v->store;//结果是多个仓库 foreach($v['stroe'] as $val){$val->product;//结果是多个商品 }}dump($user);

    已知商品的id=888 查 商品->仓库->店铺->管理员

    $product_id=888;//已知商品的id是888$product=model("product")->get($product_id);$product->store->shop->user;//结果是一个管理员;$username=$product['store']['shop']['user']['name'];//去某一个字段的值$username=$product->store->shop->user->name;//或者直接这样dump($product);

    PS

  • 思路是这样的
  • 为了保证写的没有重大问题 正在抓紧测试中 稍后编辑
  • 如果有更好的方式方法请回帖
  • 若有误,欢迎各位大神回帖指正
  • 如果对你有帮助 请收藏!请点赞!

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部