金沙娱场城app

 
 注册大米会员

qq登录

只需一步,快速开始

查看: 604|回复: 0

大米cms7.x实现联合查询得四种方法-金沙娱场城app

[复制链接]

549

主题

827

帖子

8632

积分

超级版主

rank: 8rank: 8

积分
8632

授权用户商城金牌vip

发表于 2025-6-16 17:36:50 | 显示全部楼层 |
本帖最后由 追影 于 2025-6-16 17:40 编辑

(1)模型实现数据库联合查询链式写法:
  1.         $date = date('y-m-d');
  2.         //今日菜品
  3.         $list = dish::alias('d')
  4.             ->join('article a', 'd.aid = a.aid')  // 联表条件
  5.             ->field('d.*, a.title')  // 指定字段,并重命名 title
  6.             ->where('d.dish_date', '=', $date)
  7.             ->where('a.status', 1)
  8.             ->select()
  9.             ->toarray();
  10.         var_dump($list);
复制代码

(2)使用大米cms7.x提供得视图模型
  1. /***********************************************************
  2. [大米cms] (c)2011 - 2011 damicms.com

  3. @function 管理员视图模型 model

  4. @filename adminviewmodel.class.php $

  5. @author 追影 qq:279197963 $

  6. @date 2011-11-17 15:23:44 $
  7. *************************************************************/
  8. namespace app\base\model;
  9. use app\base\model\viewmodel;

  10. class adminview extends viewmodel
  11. {
  12.     protected $viewfields = [
  13.         'admin' => ['id,username,lastlogintime,lastloginip,status','_as'=>'admin','_type'=>'left'],
  14.         'role_admin' => ['role_id', '_as'=>'role_admin','_on' => 'admin.id=role_admin.user_id'],
  15.    ];
  16. }
  17. ?>
复制代码
再用 d('admin_view')->select() 调用看结果
(3)使用with
  1. $list = d('article')->with(['feats'])->whereraw('aid=' . $_get['aid'])->find();
  2.         $feats = !empty($list)?$list->feats->toarray():[];
复制代码

模型中feats定义为:
  1.     public function feats()
  2.     {
  3.         return $this->hasmany(\app\base\model\feat::class,'aid','aid');
  4.     }
复制代码

(4)直接执行sql
  1.             $sql = "select role.id as role_id,node.* from dami_role as role,dami_role_admin as user,dami_access as access,dami_node as node where user.user_id=" . session(config('app.user_auth_key')) . " and user.role_id=role.id and role.status=1 and role.id=access.role_id and access.node_id = node.id and node.ismenu=1 and menu_pid=37";
  2.             //echo $sql;
  3.             $list = db::query($sql);
复制代码




个人推荐方法2或方法一 简单明了


您需要登录后才可以回帖 登录 | 注册大米会员

本版积分规则

快速回复 返回列表
网站地图