tp5模型笔记---多对多
来源:互联网 发布:数码宝贝网络侦探能力 编辑:程序博客网 时间:2024/06/04 19:25
关联模型
一对一:HAS_ONE 以及对应的BELONEGS_TO
一对多:HAS_MANY 以及相对的BELONGS_TO
多对多:BELONGS_TO_MANY
步骤:
第一:创建Users模型
第二:创建Comment模型
第三:在Users模型添加方法
第四:在comment模型添加方法
第五:测试
多对多关联表
truncate table tp_shipping_area
truncate table tp_area_region
select * from tp_shipping_area
select * from tp_area_region
1.清空tp_shipping_area表和tp_area_region表进行测试
2.创建Region模型和ShippingArea模型
3.设置Region模型的关联方法指定关联表
4.设置ShippingArea模型的关联方法指定关联表
三张表 tp_region(地区表) tp_shipping_area(配送区域表) tp_area_region(配送区域和地区关联表) 枢纽表
Region.phpnamespace app\index\model;use think\Model;class Region extends Model{//全国地区表//配送区域表格public function shippingArea(){//地区表------配送区域表return $this->belongsToMany('ShippingArea','tp_area_region','shipping_area_id','region_id');}}ShippingArea.phpnamespace app\index\model;use think\Model;class ShippingArea extends Model{public function region(){return $this->belongsToMany('Region','tp_area_region','region_id','shipping_area_id');}}//在控制器中使用多对多关联模型namespace app\index\controller;use think\Controller;use think\Db;use app\index\model\Users;use app\index\model\Region;use app\index\model\ShippingArea;class Index extends Controller{//查询public function select(){$regon=Region::get(28558);echo $region->shippingArea[0]->shipping_area_name.'===<br/>';echo $region->shippingArea[1]->shipping_area_name.'===';//select tp_shippingArea.*,pivot.shipping_area_idaspivot_shipping_area_id,pivot.region_id AS pivot_region_id from tp_shipping_area Inner join tp_area_region pivot onpivot.shipping_area_id=tp_shipping_area.shipping_area_id where pivot.region_id=28558}//更新public function update(){}//删除public function del1(){$region=Region::getByName('北京市');$shippingArea=ShippingArea::get(2);$region->shippingArea()->detach($shippingArea); 删除关联关系//delete from tp_area_region where region_id=1 and shipping_are_id=2 }public function del2(){$region=Region::getByName('北京市');$shippingArea=ShippingArea::get(3);$region->shippingArea()->detach($shippingArea,true);return '配送区域删除成功';//delete from tp_area_region where region_id=1 and shipping_area_id=3//delete from tp_shippingArea where shipping_area_id=3;}//插入public function insert(){$region=Region::getByName('北京市');$region->shippingArea()->save(['shipping_area_name'='中国首都']);//select * from tp_region where name='北京市' limit 1//insert into tp_shipping_area(shipping_area_name) values('中国首都');//insert into tp_area_region('regin_id','shipping_area_id') values(1,'1');}public function saveAll(){$regin=Region::get(28558);$regin->shippingArea()->saveAll([['shipping_area_name'=>'珠三角'],['shipping_area_name'=>'全国一线城市']])return '配送区域新增成功';}//把没有关联关系的数据插入到中间表中,形成关联关系public function relation(){$region=Region::get(28241);$shippingArea=ShippingArea::getByShippingAreaName('珠三角');$region->shippingArea()->attach($shippingArea);return '配送区域新增成功';}public function relation2(){$region=Region:get(28241);$region->shippingArea()->attache(2);return '配送区域新增成功';//insert into tp_area_region('region_id',shipping_area_id) values(28241,2);}}
阅读全文
0 0
- tp5模型笔记---多对多
- tp5模型笔记---一对多
- tp5模型笔记---一对一
- TP5 模型
- 20160804 笔记之一对多模型创建
- TP5笔记
- 《TP5.0学习笔记---模型篇(一)》
- 《TP5.0学习笔记---模型篇(二)》
- 《TP5.0学习笔记---模型篇(三)》
- 《TP5.0学习笔记---对Mysql数据库的操作(一)》
- 《TP5.0学习笔记---对Mysql数据库的操作(二)》
- tp5中的模型关联
- TP5 where多条件查询
- TP5 M生命周期笔记
- TP5适用bootstrap多图上传插件
- tp5中多条件模糊查询
- TP5单入口绑定多模块
- Django的学习笔记(三)(Django多对多关系模型)
- spring之applicationContext、beanFactory
- laravel 图片验证码 mews/captcha
- 【Sort】56. Merge Intervals
- 在C#中怎么样声明全局变量和宏定义
- 7.TensorFlow的RNN和LSTM基础范例
- tp5模型笔记---多对多
- 不通过中间变量 交换两个数的值
- 第4章 远程管理
- 10个React小模式
- RemoveDuplicates form Sort Array
- Fluent Python读后感
- LYK快跑!(run)
- 【实战】4-6 git初始化
- protobuf反射