返回

thinkphp5.0的alias、join、field、where、实操使用详解

发布时间:2022-12-23 13:48:58 311
# php# 数据
public function ceshi()
{
//给表取别名
$alias=['admin_user'=>'au','admin_class'=>'ac'];

//join数据必须包含2个中括号(SQL join 用于把来自两个或多个表的行结合起来。)第一个参数是表名,第二个参数是表达式
$join= [['admin_class','au.admin_class_id=ac.id']];

//如果多表结合需要这样写
// $join= [
// ['admin_class','au.admin_class_id=ac.id'],
// ['admin_user_status aus','au.admin_user_status_id=aus.id']
// ];

//需要展示的字段(列) ‘ac.class_name’取别名为‘classname’
$field=['au.id','au.name','ac.class_name'=>'classname'];

//条件数组 只有条件数组可以这样定义
$where['au.admin_name']=['=','sushuailong'];
$where['au.state']=['=','1'];


$Admin_user = Admin_user::get(function($query) use($alias,$join,$field,$where){
$query->alias($alias)
->join($join)
->field($field)
->where($where);
});

echo $Admin_user;

}

本篇文件用的是闭包查询,外面的变量直接用是会报错的,所以得用'USE'引入

实战代码

public function index($key='')
{
//用模型获取分页数据,并转换成数组形式



//给表取别名
$alias=['client'=>'c','service_item'=>'si'];

//join数据必须包含2个中括号(SQL join 用于把来自两个或多个表的行结合起来。)第一个参数是表名,第二个参数是表达式
$join= [['service_item','c.id=si.client_id']];

//需要展示的字段(列)
$field=['c.id','c.product_id','c.name','si.id'=>'si_id','si.name'=>'si_name','si.section'=>'si_section'];

//条件数组 只有条件数组可以这样定义
$where['c.id']=['>','0'];

//关键词查询条件
if($key!=''){
//关键词放中间查询
$map['c.name'] = ['like','%'.$key.'%'];
}
else{
$map['c.id'] = ['>',0];
}

//获取所有客户数据
$c_list=ClientModel::whereOr($map)->alias($alias)
->order(['si.id'=>'desc'])
->join($join)
->field($field)
->paginate(10,false,['type'=>'Cppage']);




//阻断程序执行
//exit("$si_list");

// 获取分页显示
$page = $c_list->render();



// 获取总数据数
$c_num = $c_list->num_total();


//获取产品所有数据
$product_all = ProductModel::all(function($query){
$query->order(['order'=>'asc','id'=>'asc']);
});



//模板赋值
$this->view->assign('c_list',$c_list);
$this->view->assign('c_num',$c_num);
$this->view->assign('product_all',$product_all);
$this->assign('page', $page);


//渲染
return $this->view->fetch('serviceitem_list');
}

 

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
网站服务器如何选配 2022-12-23 13:20:45