您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp5学习笔记-关联-一对多
发布时间:2018-06-14 21:37:28编辑:雪饮阅读()
一对多关联模型:
应用场景如:一个用户有多个订单,而一个订单只能对应一个用户,以用户为master则就是一对多关联模型
架构实现:
(1)在用户模型中声明关联方法如:
//定义关联方法
public function order(){
//hasMany参数分别是:目标表名、目标表中的关联字段、当前表中的关联字段
return $this->hasMany('s_order','user_id','id');
}
(2)声明订单模型如:
<?php
namespace app\index\model;
use think\Model;
class SOrder extends Model
{
protected $name='s_order';
}
?>
(3)控制器中通过用户id关联查询到订单id如:
$sUser=sUser::get(38);
p($sUser->order[0]->id);
(4)关联新增
这里需要注意,由于用到了订单模型,所以订单模型的命名空间也要导入
$sUser=sUser::get(38);
//实例化一个一对多的slave
$order=new SOrder;
$order->businesses_id=19;
$order->remark='美人指拨动了琴弦';
$sUser->order()->save($order);
return '订单提交成功';
(5)关联新增(批量)
$sUser=sUser::get(38);
$order=[
['remark'=>'光阴的包袱沉重,装下多少蹉跎','businesses_id'=>24],
['remark'=>'痛快将情仇-斩落,指向爱的剑-难收','businesses_id'=>25],
];
$sUser->order()->saveAll($order);
return "批量下单成功";
关键字词:thinkphp5,一对多