thinkphp5、tp5中的多表关联查询[模型方式即model类]

浏览:16332 发布日期:2018/08/23 分类:功能实现
关联查询用的非常多,再日常中2张表。3张表、4张表甚至更多张表的关联查询都会出现!
关联查询用的非常多,再日常中2张表。3张表、4张表甚至更多张表的关联查询都会出现!

如果我们只在控制器中采用__BIAOMING__ 【join】的方式查询会导致代码非常的长,并且复用率也特别低


所以还是使用model类进行关联查询省代码量,还提高了复用率!

下面就简单以3张表为例向大家示范一下tp5[thinkphp5]中的多表使用[2张表都会用,现省略]


1首先建立model类



我的是建立在common目录下,提供前后台共同使用

2:在主model类中添加关联

我的主model 是Siagngchuangjian

代码如下



code
<?php
namespace app\common\model;
use think\Model;
class Sigangchuangjian extends Model
{
function SigangchuangjianType()
{
return $this->hasOne('SigangchuangjianType','id','type_id');
}
function OrganisationInformation()
{
return $this->hasOne('OrganisationInformation','id','ogid');
}
}

其他2个model代码如下

code
<?php
namespace app\common\model;
use think\Model;
class OrganisationInformation extends Model
{
}

code
<?php
namespace app\common\model;
use think\Model;
class SigangchuangjianType extends Model
{
}

下面是控制器调用的代码:

code
$res = Sigangchuangjian::with("SigangchuangjianType,OrganisationInformation")->where(["id"=>4])->select();
for ($i = 0;$i < count($res);$i++){
p($res[$i]->toArray());
}
p($res);
die;

其实这些方式在文档中都有,只是我们部分人看文档不可能面面俱到!

希望上述对各大网友有所帮助,举一反三、很重要!

本文首发于 micuer.com

转载请注明出处
评论( 相关
后面还有条评论,点击查看>>