TP6.0 模型的关联删除
2023-02-19 12:20:09 时间
1. 关联删除
模型的关联删除是经常使用的模型特性之一
适用场景举例:
1、在删除文章的同时删除下面的评论 2、 删除用户的同时删除用户的多条评论和多条操作日志
2. User 模型定义
一个用户对应多条评论和多条操作日志,并且在用户模型已经定义模型关联方法
/**
* 一对多关联 用户对应多个评论
*
* @return \think\model\relation\hasMany
*/
public function comments()
{
return $this->hasMany(Comment::class, 'user_id', 'id');
}
/**
* 一对多关联 用户对应多个操作日志
*
* @return \think\model\relation\hasMany
*/
public function logs()
{
return $this->hasMany(Log::class, 'user_id', 'id');
}
3. 关联删除使用示例
删除一个用户及其发布的评论、操作日志
$user_id = 1;
$data = User::with(['comments', 'logs'])->findOrEmpty($user_id);
$bool = $data->together(['comments', 'logs'])->delete();
删除多个用户及其发布的评论、操作日志
$data = User::with(['comments', 'logs'])->select();
foreach ($data as $model) {
$model->together(['comments', 'logs'])->delete();
}
4. 特别注意
查询时必须使用 with
关联预载入,否则 together
关联删除无效
相关文章
- Typora+PicGo+GitHub实现图片快速上传
- Linux计划任务服务程序
- 2022 如何在 GitHub 上搭建个人网站(github.io)
- 虚拟机安装linux无法访问外网解决办法
- 用过 mongodb 吧, 这三个大坑踩过吗?
- 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
- MongoDB 在评论中台的实践
- 使用mongodb作为Quartz.Net下的JobStore实现底层的持久化机制
- mongodb之使用explain和hint性能分析和优化
- mongodb 3.x 之实用新功能窥看[2] ——使用$lookup做多表关联处理
- mongodb 3.x 之实用新功能窥看[1] ——使用TTLIndex做Cache处理
- 双十一来了,别让你的mongodb宕机了
- GO语言开发环境搭建笔记
- PHP判断网络连通
- 开启phpMyAdmin的远程登录
- PHP_cURL初始化和执行方法
- PHP经典函数收集
- PHP所有函数列表
- php bbcode过滤
- php不使用中间变量交换两个变量的值