php 模型关联,关于php: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;

}

}

其余关联形式的应用也是相似的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值