我有一段非常简单的代码:
$dropOrder = new DropOrder($dropOrderId);
$dropOrder->is_supplier_paid = $payValue;
$dropOrder->save();
它可以工作并将'is_supplier_paid'字段值保存到数据库中。但它也会执行意外操作,并使用0值填充所有空值字段。
我试着像这样保存它:
$dropOrder->save(true);
但我仍然有同样的奇怪行为。我想只改变一个字段而不要触及其他字段。
答案 0 :(得分:4)
根据 $ definition 中声明的字段类型,值在插入/更新之前由 ObjectModel :: formatValue()格式化。
您必须使用 TYPE_NOTHING 来允许 NULL 值,这是唯一的方法。
使用 id_shop 和 id_group_shop 字段查看配置课程。
答案 1 :(得分:0)
PrestaShop 1.7:
我在 PS 1.7 中遇到了同样的问题,设置 TYPE_NOTHING 不足以解决这个问题。就我而言,我还需要在字段定义中将 allow_null
添加到 true
:
'my_field' => ['type' => self::TYPE_NOTHING, 'allow_null' => true, 'value' => null]
('value' => null
可能不是必需的,但建议使用)