CakePHP が 2.3.5 にアップデートされたため、データの保存に問題があります。価格が含まれていないデータを保存したくありません。
私のモデルの beforeSave メソッドは次のようになります。
public function beforeSave($options = array()){
if(empty($this->data['MyModel']['price'])){
unset($this->data['MyModel']);
}
return true;
}
私の更新以来、私はこれを /lib/Model/Model.php (l. 1751) で見つけました。
if ($success && $count === 0) {
$success = false;
}
この3行にコメントすると、問題は解決します。私の保存をブロックしない beforeSave のメソッドを知っていますか?
データ検証を使用すると、すべてのデータが saveAll で保存されません。
モデル「オプション」バリデーターの例:
public $validate = array(
'prix' => array(
'rule' => 'notEmpty'
)
);
保存するデータの例:
array(
'Commande' => array(
'nature_commande' => '0',
'base_id' => '1',
'nom' => 'Test',
'chef_id' => '531',
),
'Option' => array(
(int) 0 => array(
'prix' => '5456'
),
(int) 1 => array(
'prix' => '45645'
),
(int) 3 => array(
'prix' => ''
)
)
私のコントローラー「コマンド」のsaveAll(falseを返す):
debug($this->Commande->saveAll($this->request->data, array('validate' => 'first')));
モデルの「オプション」の最後の行からデータを保存したい => 3. コントローラーで foreach を使用して空白の行を削除できますが、改善できますか?