|
|
本帖最后由 追影 于 2025-6-16 17:40 编辑
(1)模型实现数据库联合查询链式写法:
- $date = date('Y-m-d');
- //今日菜品
- $list = Dish::alias('d')
- ->join('article a', 'd.aid = a.aid') // 联表条件
- ->field('d.*, a.title') // 指定字段,并重命名 title
- ->where('d.dish_date', '=', $date)
- ->where('a.status', 1)
- ->select()
- ->toArray();
- var_dump($list);
复制代码
(2)使用大米cms7.x提供得视图模型
- <?php
- /***********************************************************
- [大米CMS] (C)2011 - 2011 damicms.com
- @function 管理员视图模型 Model
- @Filename AdminViewModel.class.php $
- @Author 追影 QQ:279197963 $
- @Date 2011-11-17 15:23:44 $
- *************************************************************/
- namespace app\base\model;
- use app\base\model\ViewModel;
- class AdminView extends ViewModel
- {
- protected $viewFields = [
- 'admin' => ['id,username,lastlogintime,lastloginip,status','_as'=>'admin','_type'=>'LEFT'],
- 'role_admin' => ['role_id', '_as'=>'role_admin','_on' => 'admin.id=role_admin.user_id'],
- ];
- }
- ?>
复制代码 再用 D('admin_view')->select() 调用看结果
(3)使用with
- $list = D('article')->with(['feats'])->whereRaw('aid=' . $_GET['aid'])->find();
- $feats = !empty($list)?$list->feats->toArray():[];
复制代码
模型中feats定义为:
- public function feats()
- {
- return $this->hasMany(\app\base\model\Feat::class,'aid','aid');
- }
复制代码
(4)直接执行sql- $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";
- //echo $sql;
- $list = Db::query($sql);
复制代码
个人推荐方法2或方法一 简单明了
|
|