搜索
系统检测到您的用户名不符合规范:

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

浏览:16349 发布日期: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

转载请注明出处
收藏
571031767
积分:1366 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /