tp5.1模型save()更新后,数据没有变化

我一下碰到这个问题,上网也没有找到是什么问题,不断研究 ,咳咳,终于找到问题了..

先说从版本v5.1.6的tp5.1开始 save()返回有一些变化,官网介绍如下:

 

 

因为返回不是受影响行数,只要语句没有问题,返回的都是true,我们要清楚知道这一点, 那么数据没有更新就不是这个上的问题了,去别的地方找找

比如:你设置了过滤字段:


//设置过滤字段
protected $field = ['name','p_id','province','city', 'area','address'];

这个没有要你要更新的字段,数据库的字段是不会更新的;我的问题就是这个问题......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TP5.1中,你可以使用模型的allowField和save方法来过滤字段更新。 首先,你需要在模型中定义可更新的字段,使用allowField方法来指定允许更新的字段,如下所示: ```php namespace app\index\model; use think\Model; class User extends Model { protected $table = 'user'; // 定义允许更新的字段 protected $field = ['username', 'email']; // 其他模型属性和方法... } ``` 在上面的例子中,允许更新的字段为username和email。 然后,你可以在控制器中使用save方法来更新模型的字段。save方法会自动过滤掉不在允许更新字段列表中的字段,只更新允许更新的字段,如下所示: ```php namespace app\index\controller; use app\index\model\User; use think\Controller; class UserController extends Controller { public function update($id) { $data = [ 'username' => 'new_username', 'email' => 'new_email@example.com', 'password' => 'new_password', // 这个字段不在允许更新的列表中,会被过滤掉 ]; $user = User::get($id); $user->save($data); // 其他操作... } } ``` 在上面的例子中,我们创建了一个包含要更新的字段的$data数组。然后,我们通过User模型的get方法获取要更新的用户,并使用save方法将$data数组中的字段更新数据库中。注意,$data数组中的password字段不在允许更新的列表中,所以它会被过滤掉。 通过以上的步骤,你可以在TP5.1中过滤字段更新。记得在模型中定义允许更新的字段,并使用save方法来更新模型的字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值