tp5细节

本文介绍了TP5框架中的一些关键细节,包括如何过滤不必要的字段,正确使用分页,以及在模型中进行数据保存的注意事项。强调了在多次调用`save()`方法时应避免数据重复,并展示了如何设置软删除为datetime类型。

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

.php文件不能带有数字

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

过滤不要字段

u s e r = n e w U s e r ( user = new User( user=newUser(_POST);
// 过滤post数组中的非数据表字段数据
$user->allowField(true)->save();

分页

在这里插入图片描述
在这里插入图片描述

$user->save();

$result = u s e r − > a l l o w F i e l d ( t r u e ) − > s a v e ( user->allowField(true)->save( user>allowField(true)>save(data, [‘id’ => $id]);
不要在一个模型实例里面做多次更新,会导致部分重复数据不再更新,正确的方式应该是先查询后更
新或者使用模型类的 update 方法更新。
如果你调用save方法进行多次数据写入的时候,需要注意,第二次save方法的时候必须使用
isUpdate(false),否则会视为更新数据。
实例化模型后调用save方法表示新增;
查询数据后调用save方法表示更新;
save方法传入更新条件后表示更新;
当更新的数据一样,即使条件不一致时,save方法也不会更新数据。

解决方法:
加上isUpdate(true)更新数据。

t h i s − > i s U p d a t e ( t r u e ) − > s a v e ( [ ′ s c o r e ′ = > this->isUpdate(true)->save(['score'=> this>isUpdate(true)>save([score=>v[‘score’]],[‘id’=>$v[‘id’]]);

tp5默认软删除是int型,修改为datetime

在model的子文件定义
protected $autoWriteTimestamp = ‘datetime’;
protected $updateTime = false;
protected $dateFormat = ‘Y-m-d H:i:s’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值