2

私は非常に単純なコードを持っています:

$dropOrder = new DropOrder($dropOrderId);
$dropOrder->is_supplier_paid = $payValue;
$dropOrder->save();

これは機能し、「is_supplier_paid」フィールドの値をデータベースに保存します。ただし、予期しないアクションも実行し、null 値のフィールドをすべて 0 値で埋めます。

私はこのように保存しようとします:

$dropOrder->save(true);

しかし、私はまだ同じ奇妙な行動をしています。1 つのフィールドのみを変更し、他のフィールドには触れないようにします。

4

2 に答える 2

4

値は、 $definitionで宣言されたフィールドのタイプに基づいて、挿入/更新される前にObjectModel::formatValue()によってフォーマットされます。

NULL値を許可するには、 TYPE_NOTHINGを使用する必要があります。これが唯一の方法です。

id_shopフィールドとid_group_shopフィールドを含むConfigurationクラスを見てください。

于 2013-11-15T14:02:12.597 に答える
0

プレスタショップ 1.7:

PS 1.7 で同じ問題に遭遇しましたが、この問題を解決するには TYPE_NOTHING を設定するだけでは不十分です。私の場合、フィールドの定義に追加allow_nullする必要もありました。true

'my_field' => ['type' => self::TYPE_NOTHING, 'allow_null' => true, 'value' => null]

('value' => nullおそらく必要ではありませんが、推奨されます)

于 2021-01-28T16:07:02.317 に答える