tp5 模型 save要 new 不能 self 静态 是查询

在ThinkPHP5框架中,模型操作数据时,使用save方法更新记录时,通常需要先通过new实例化模型,而非直接使用self或者静态方式调用。这是因为save方法依赖于当前模型实例的数据,实例化确保了对正确数据的修改。本文将深入探讨这一规范的原因及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.kancloud.cn/ldkt/tp5_model/237110 
如果使用模型更新操作的时候不要使用where()来进行判断,需要使用isUpdate() 来判断,第一个参数是true,第二个参数写更新的条件。

$res = model('Ceshi')->allowField(true)->isUpdate(true,['uid'=>$uid])->save(['status'=>1]);
 
或者是在save()的第二个参数加上更新条件

$res = model('Ceshi')->allowField(true)->isUpdate(true)->save(['status'=>1],['uid'=>$uid]);
 
 静态  查 
 动态  cud     save    


curd 写在 C层   操作数据写在 M 层 不然$this 无效
若在 M层  curd      (new self)
        $res = (new self)->validate(true)->allowField(true)->isUpdate(false)->save($param);


```php
//上下架
    $('.updown').click(function () {
        var id = $(this).attr('data-id');
        var status = $(this).attr('data-value');
           switch (status) {
            case '1':
                var msg = '上架';
                break;
            case '2':
                var msg = '下架';
                break;
        }

        if (window.confirm('确定' + msg + '吗?') == true) {
      	  status == 1 ? status = 2 : status = 1;
            $.ajax({
                type: 'post',
                url: '{:url("Sygoods/updown")}',
                data: {id: id, status: status},
                success: function (data) {
                    data ? alert(msg+'成功') : alert(msg+'失败');

                    location.reload();
                },
                error: function () {

                }
            })
        }
    });

//上下架
    public function upDown(Request $request = null)
    {
        $param = $request->param();
        $sg = new \app\admin\model\SyGoods();
        $res = $sg->allowField(true)->isUpdate(true)->save(['status' => $param['status']], ['id' => $param['id']]);
        return $res;
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值