1、同时添加多个配送区域
//同时添加多个配送区域
$region = Region::getByName('北京市');
$region->shippingArea()->saveAll([
['shipping_area_name' => '珠三角'],
['shipping_area_name' => '全国一线城市'],
]);
return '设置城功!';
//SELECT * FROM `tp_region` WHERE `name` = '北京市' LIMIT 1
//INSERT INTO `tp_shipping_area` (`shipping_area_name`) VALUES ('珠三角')
//REPLACE INTO `tp_area_region` (`region_id` , `shipping_area_id`) VALUES (1 , 12)
//INSERT INTO `tp_shipping_area` (`shipping_area_name`) VALUES ('全国一线城市')
//REPLACE INTO `tp_area_region` (`region_id` , `shipping_area_id`) VALUES (1 , 13)
2、给一个地区,添加一个现有的配送区域
//给一个地区,添加一个现有的配送区域
$region = Region::getByName('上海市');
$shippingArea = ShippingArea::getByShippingAreaName('珠三角');
$region->shippingArea()->attach($shippingArea);//使用attach方法增加中间表插入数据
//$region->shippingArea()->attach(63); //直接写配送区域的ID也是可以的。
return '配送区域新增成功!';
//SELECT * FROM `tp_region` WHERE `name` = '上海市' LIMIT 1
//SELECT * FROM `tp_shipping_area` WHERE `shipping_area_name` = '珠三角' LIMIT 1
//REPLACE INTO `tp_area_region` (`region_id` , `shipping_area_id`) VALUES (2 , 9)
3、关联删除 删除关系(中间表)
$region = Region::getByName('北京市');
$shippingArea = ShippingArea::get(9);
$region->shippingArea()->detach($shippingArea);
//SELECT * FROM `tp_region` WHERE `name` = '北京市' LIMIT 1
//SELECT * FROM `tp_shipping_area` WHERE `shipping_area_id` = 9 LIMIT 1
//DELETE FROM `tp_area_region` WHERE `region_id` = 1 AND `shipping_area_id` = 9
4、删除枢纽表的同时删除关联模型(关系、中间表)
$region = Region::getByName('北京市');
$shippingArea = ShippingArea::get(10);
$region->shippingArea()->detach($shippingArea,true);
//SELECT * FROM `tp_region` WHERE `name` = '北京市' LIMIT 1
//SELECT * FROM `tp_shipping_area` WHERE `shipping_area_id` = 10 LIMIT 1
//DELETE FROM `tp_area_region` WHERE `region_id` = 1 AND `shipping_area_id` = 10
//DELETE FROM `tp_shipping_area` WHERE `shipping_area_id` = 10
5、关联模型的读取 查找到北京的配送区域
$region = Region::get(1); //北京市
echo $region->shippingArea[0]->shipping_area_name.'<br>';
echo $region->shippingArea[1]->shipping_area_name;
//SELECT * FROM `tp_region` WHERE `id` = 1 LIMIT 1
//SELECT `tp_shipping_area`.*,pivot.shipping_area_id AS pivot__shipping_area_id,pivot.region_id AS pivot__region_id FROM `tp_shipping_area` INNER JOIN `tp_area_region` `pivot` ON `pivot`.`shipping_area_id`=`tp_shipping_area`.`shipping_area_id` WHERE `pivot`.`region_id` = 1
//中国首都
//中国一经城市
//关联模型的读取 查找到北京的配送区域 先关联后查寻
$region = Region::get(1,'shippingArea'); //北京市
echo $region->shippingArea[0]->shipping_area_name.'<br>';
echo $region->shippingArea[1]->shipping_area_name;
// SELECT * FROM `tp_region` WHERE `id` = 1 LIMIT 1
//SELECT `tp_shipping_area`.*,pivot.shipping_area_id AS pivot__shipping_area_id,pivot.region_id AS pivot__region_id FROM `tp_shipping_area` INNER JOIN `tp_area_region` `pivot` ON `pivot`.`shipping_area_id`=`tp_shipping_area`.`shipping_area_id` WHERE `pivot`.`region_id` = 1