tp 模型关联用法

码农天地 -
tp 模型关联用法

在数据库查询中,难免要多表联查,tp给我们提供了一个 模型关联 ,来避免我们 使用 join来做关联。

我这里以一对多为例子:

order表为主表,order_goods为关联表。定义order模型
<?php
namespace appmodel;
use thinkModel;
class Order extends Model
{
 public  function goodsList()
 { 
    //可以以链式操作的方式,对查询的数据进行筛选~~~~。 如我这里只查询商品图片。
     return $this->hasMany(OrderGoods::class,'order_id','order_id')
 ->field('goods_image as image');
 }
}
定义order_goods表模型
<?php
namespace appmodel;
use thinkModel;
class OrderGoods extends Model
{
    //因为是关联表所以可以什么都不行写,但必须要定义
}
当我们要查询一个订单并获取这个定中的商品时:order表查询一条记录:
<?php
declare (strict_types = 1);
namespace app\controller\api;

use app\model\OrderGoods;
use app\model\Order as OrderModel;
class Order extends Base{
    public function order(){
        //查询到这条数据
        $data = OrderModel::find(1);
        //直接调用一下关联的方法 ,获取关联数据
        $data->goodsList;
    }

}
当order表查询多条记录时
public function order(){
        //查询到是多条数据
        $list = OrderModel::where('id','>',1)->select();
        foreach ($list as $item){
            //一对多关联查询
            $item->goodsList;
        }
    }
其他关联方式的使用也是类似的。
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

php

扩展阅读

加个好友,技术交流

1628738909466805.jpg