$this->request-> изменение данных после ошибок валидации

У меня проблема с некоторыми ошибками проверки в моей модели. Я потерял большую часть своих данных, когда произошла ошибка. Я вижу, что $ this-> request-> data изменяется так, как он будет обрабатываться в контроллере. Но когда происходит ошибка, я перенаправляюсь к представлению, и у меня нет хороших данных "$this->request-> для отображения моего представления.

Пожалуйста, у вас есть решение?

Редактировать: с кодом из файла модели. Я добавляю //BUG ЗДЕСЬ, чтобы уведомить, где $this->data->request не переустанавливается.

Класс Event расширяет AppModel {

    public $hasMany = 'CategoryOptionEventEvent';
    public $hasOne = array(
    'CategoryVehicleEvent' =>
        array(
            //'className' => 'Event',
            'joinTable' => 'category_vehicle_events',
            'foreignKey' => 'id',
            'associationForeignKey' => 'id',
            'conditions' => '',
            'fields' => '',
            'order' => '',
            'limit' => '',
            'offset' => '',
            'finderQuery' => '',
            'with' => ''
        ),
    );
    public $validate = array(
        'name' => array('rule' => 'notEmpty'),
        'description' => array('rule' => 'notEmpty'),
        //'date' => array('rule' => 'notEmpty'),
        'hour' => array('rule' => 'notEmpty'),
        'street_number' => array('rule' => 'notEmpty'),
        'street_name' => array('rule' => 'notEmpty'),
        'postal_code' => array('rule' => 'notEmpty'),
        'city' => array('rule' => 'notEmpty'),
        //BUG HERE
        'vehicle_minimum' => array(
            'rule1' => array(
            'rule' => 'notEmpty'
            ),
            'rule2' => array(
            'rule' => array('comparisonWithField', '<=', 'vehicle_maximum'),
            'message' => 'Le nombre de véhicule minimum doit être inférieur ou égal au nombre de véhicule max.'
        )
    ),
    'vehicle_maximum' => array('rule' => 'notEmpty'),
    'vehicle_price' => array('rule' => 'notEmpty'),
    'attendent_price' => array('rule' => 'notEmpty'),
    'attendent_maximum' => array('rule' => 'notEmpty'),
    'is_visible' => array('rule' => 'notEmpty'),
    //Validation date
    //BUG HERE
    'date' => array(
            'rule' => array('date', 'ymd'),
            'message' => 'Entrez une date correcte !')
    );

Редактировать решено: я решил проблему с проверкой данных с контроллера

if($this->Event->validates()){
}
else{
$this->request->data = $this->Event->findById($id);
}

Спасибо, что посмотрю на мою проблему.

0 ответов

Другие вопросы по тегам