Так как 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.
Пример модели валидатора "Option":
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 в моем контроллере «Commande» (возвратите false):
debug($this->Commande->saveAll($this->request->data, array('validate' => 'first')));
Я хотел бы, чтобы мои данные были сохранены из последней строки в моей модели «Параметры» => 3. Я могу использовать foreach в своем контроллере, чтобы удалить пустую строку, но могу ли я сделать это лучше?
$count
— количество полей. Если вы отключите все в$this->data[]
, то у вас не будет полей для сохранения торта, следовательно, это условие выполнено. Ваша логика/код неверны, код модели торта в порядке. Используйте встроенную проверку тортов - person Ross   schedule 30.01.2013