ThinkPHP 6 关联模型删除时提示:没有条件不会执行删除操作

在ThinkPHP6中,尝试仅删除子表数据而不影响主表时遇到问题。本文介绍了一个在TP5中有效的子表删除方法,并指出在TP6中此方法因未提供条件而失败。提供了一个临时解决方案。
部署运行你感兴趣的模型镜像

在 ThinkPHP 中模型关联删除官方文档只提到了主子表数据一起删除的方法。
即使用together方法,但在不删除主表只删除子表的时候遇到问题了。

正常执行(TP5)

以下代码在 TP 5.0.24 中是可以正常删除子表数据的:

<?php
namespace app\index\controller;

use app\common\model\Article;

class Index
{
    public function index()
    {
        $data = Article::get(1, ['image']);
        $data->image()->delete();
        return json($data);
    }
}

问题代码(TP6)

而到了 TP 6 代码有点变化,但基本是一样的操作,却会报错:

没有条件不会执行删除操作

<?php
namespace app\controller;

use app\BaseController;
use app\model\Article;

class Index extends BaseController
{
    public function index()
    {
        $data = Article::with(['image'])->find(1);
        $data->image()->delete();
        return json($data);
    }
}

报错详情

在这里插入图片描述

解决方案

说实话我认为这是 bug,临时我的方案是

$data->image->delete();

参考链接

TP官网讨论:http://www.thinkphp.cn/topic/68775.html

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值