TP6.0 模型的关联删除
2024-09-16
9
1. 关联删除2. User 模型定义3. 关联删除使用示例4. 特别注意
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
关联删除无效
赞一波!
相关文章
- TP6.0 模型获取器
- TP6.0 模型JSON字段的使用 【系统配置表 key-value】
- TP6.0 一对一模型关联 belongsTo 相对关联(反向关联)
- TP6.0 一对一模型关联 hasOne
- TP6模型类在PhpStorm中没有方法提示
- ThinkPHP6.0 模型搜索器的使用
- TP6.0 模型搜索器
- 如何在 Django 中创建抽象模型类?
- 区块链模型解析:公有链、私有链与联盟链全面解读
- 订单履约系统的概念模型
- 使用Java编写一个简易的区块链概念模型代码
- 在Windows PC本地搭建类似ChatGPT的AI模型和交互式UI图文教程
- 特征工程:从数据到模型的桥梁——提升机器学习模型性能的关键步骤
- 谷歌推出交互生成式Genie模型可以创造2D交互游戏画面
- 大分类显示自定义模型字段的方法
- 为不同的模型栏目指定不同的样式
- 添加整站核心系统(文章模型)自定义字段应用教程
- 多模型分页样式独立管理修改
文章评论
评论问答