1. manager表的 mg_role_id 关联 zq_role 表的 role_id
2. 在manager model中, 写入关联表 role, 注意这里的参数结构, 最后一个是 manager的外键.
//一对一关联, 和role角色表关联
public function role()
{
return $this->hasOne('role', 'role_id', 'mg_role_id');
}
3. 控制器中调用, 用with方法调用, 如果多个, 就在with里面添加.
// 管理员列表请求ajax
public function zlistAjax()
{
$res = ManagerModel::with('role')->select();
foreach ($res as $v) {
dump($v->toArray());
}
//dump($data);
}
参考: http://www.thinkphp.cn/code/4739.html
上面这些情况, 返回的数据类型为如下, 这种不好做layui的接口.
array(13) {
["mg_id"] => int(25)
["mg_name"] => string(2) "zq"
["mg_tname"] => string(2) "zq"
["mg_pwd"] => string(9) "zl4921272"
["mg_pid"] => int(0)
["mg_path"] => string(0) ""
["mg_level"] => int(0)
["mg_xm"] => string(0) ""
["mg_xm_ch"] => string(3) "all"
["mg_time"] => string(19) "2018-06-11 16:18:43"
["mg_last_time"] => string(19) "2019-01-08 17:01:32"
["mg_role_id"] => int(52)
["role"] => array(6) {
["role_id"] => int(52)
["role_name"] => string(15) "超级管理员"
["role_auth_ids"] => string(0) ""
["role_auth_ac"] => string(0) ""
["role_addtime"] => int(1532162457)
["role_lasttime"] => int(1532169457)
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
第二种方法: 第一种方法, 连表的数据会以二维数组的形式来返回. 这样不符合layui要求的数据格式. 我们采用下面的方式, 将返回值做成一位数组的形式.
public function zq01()
{
$manager = new ManagerModel();
$info = $manager->alias('a')
->join('zq_role b', 'a.mg_role_id = b.role_id', 'LEFT')
->select();
foreach ($info as $v) {
$data[] = $v->toArray();
}
dump($data);
}
返回的数据格式为 一位数组, 可以满足layui的需求.
[0] => array(18) {
["mg_id"] => int(25)
["mg_name"] => string(2) "zq"
["mg_tname"] => string(2) "zq"
["mg_pwd"] => string(9) "zl4921272"
["mg_pid"] => int(0)
["mg_path"] => string(0) ""
["mg_level"] => int(0)
["mg_xm"] => string(0) ""
["mg_xm_ch"] => string(3) "all"
["mg_time"] => string(19) "2018-06-11 16:18:43"
["mg_last_time"] => string(19) "2019-01-08 17:01:32"
["mg_role_id"] => int(52)
["role_id"] => int(52)
["role_name"] => string(15) "超级管理员"
["role_auth_ids"] => string(0) ""
["role_auth_ac"] => string(0) ""
["role_addtime"] => int(1532162457)
["role_lasttime"] => int(1532169457)
}
-----------
如果是 数据库连表的话
$schoolstation_rs=Db::name('school')
->field('a.id,a.title,b.sid,b.price')
->alias('a')
->join('schoolstation b','a.id = b.sid')
->where('a.pid',$rs['sid'])
->where('a.flid',2)
->select();
$this->assign('schoolstation_rs',$schoolstation_rs);