• 注册
  • thinkphp6 关注:2 内容:16

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

  • 查看作者
  • 打赏作者
  • 拉黑名单
    • 关联查询用的非常多,再日常中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;

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

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

      你需要登录,才能进行发帖操作
    • 单栏布局 帖子间隔 侧栏位置: