$model->save() 保存但具有不同的值

问题描述 投票:0回答:2

更新我的购物车模型时,我运行:

$cart->transaction_id= $result->salePaymentRequestResult->token;
$cart->save();

这确实更新了我的购物车。但它具有不同的价值。为什么我的模型没有正确更新?

我没有收到任何错误。 购物车未在数据库中正确更新。 没有错误。行为如常。 运行此测试以查看保存是否成功的结果是否正确。 这个 Laravel 线程没有帮助 购物车型号:

php laravel laravel-query-builder
2个回答
1
投票

由于您的问题缺乏上下文,我建议隔离语句并记录值。您可以首先提出以下问题:

  1. 该代码点
    $result->salePaymentRequestResult->token
    的值是多少?
  2. 将静态字符串分配给
    $cart->transaction_id
    时会发生什么?例如:
    $cart->transaction_id = 'test_token';
  3. 是否为
    transaction_id
    属性定义了任何修改器? 定义变异器
  4. 模型是否定义了观察者? 观察员

0
投票

该问题可能是由于 $fillable 属性不包含 transaction_id 造成的。 Laravel 会阻止对不在 $fillable 数组中的字段进行批量分配,这可能会导致该值无法正确保存。

protected $fillable = ['transaction_id', /* other fields */];

有时缓存的数据可能会显示旧值。

php artisan cache:clear
© www.soinside.com 2019 - 2024. All rights reserved.