2014-01-27 4 views
0

Мне, должно быть, не хватает чего-то простого здесь. Я использую beforeSave в CakePHP для запуска некоторых тестов данных перед их сохранением. Если beforeSave возвращает true, данные сохраняются и пользователь перенаправляется. Если beforeSave возвращает false, я бы хотел НЕ перенаправить пользователя, а просто отобразить Session-> setFlash с инструкциями по устранению проблемы.CakePHP beforeSave false предотвращает отправку без обновления

Это работает при первом нажатии «Отправить», однако последующие Представления ничего не делают. Если я обновляю страницу, он отлично работает, если я добавлю перенаправление обратно на ту же страницу на контроллере, что это работает, но я бы хотел избежать опорожнения всех записей в форме (или должен был разработать какой-либо другой способ ее заполнения отступать для них).

Есть ли скрытая переменная, идентификатор сеанса или что-то, что необходимо сбросить?

Спасибо!

+1

Вы можете вставить код из beforesave и код с контроллера? – cornelb

+0

Я удалил свой код до самых простых команд If внутри beforeSsave без везения, так что я думаю, что это больше связано с тем, что не обновляет страницу, чем сама функция beforeSave. Например, я мог бы удалить перенаправление из общего выпеченного «добавить», и он только позволит вам добавить одну запись без обновления. – user2856332

ответ

0

Я думаю, что моя общая логика была ошибочной, слишком много времени об этом думало ... Мне в основном нужно отправить форму несколько раз, не обновляя страницу, которая действительно не имеет ничего общего с CakePHP и является скорее Ajax вопрос. Звучит ли это правильно?

+0

Да, звучит разумно. Но я готов поспорить, что вы можете сделать это без размышлений. Вы не отправляли никаких кодов, но делали ли вы '$ this-> Mymodel-> create()' перед сохранением (иначе вы «обновляете» и, возможно, имеете ошибки проверки). Тем не менее, подход ajax кажется мне более чистым. – Nunser

+0

На самом деле, я должен был упомянуть, что я специально удалил '$ this-> Model-> create();' так, чтобы он вел себя как редактирование. Но да, я проверю Ajax. – user2856332

Смежные вопросы