У меня несколько особая ситуация с одним из моих действий CommentController, действием «добавить». Поскольку у меня есть форма «Добавить комментарий» в моем представлении «представление» PostsController, у меня есть элемент «add_comment» вместо представления «добавить» для комментариев. Это то, что я могу просто вставить элемент с формой внутри «просмотра» представления сообщений. Надеюсь, это не звучит слишком сложно.
Теперь внутри элемента «add_comment» форма подвергается фактическому действию «добавить» контроллера комментариев. Если форма должна быть отрисована снова, например, из-за недопустимого пользовательского ввода, форма снова отрисовывается, на этот раз, вызывая «добавить» представление комментариев. Это представление «добавить» снова включает только элемент «add_comment», который, как было сказано выше, включает в себя фактическую форму.
Теперь дело в том, что я добавил компонент Security в свой CommentController, чтобы получить защиту от CSRF. Все мои действия администратора CommentsController получают защиту, т. е. токен отображается внутри формы и проверяется при отправке формы.
Тем не менее, форма элемента add_comments НЕ получает токен. Вероятно, потому что это элемент, а не соответствующий вид.
Как я могу вручную вставить токен в форму элемента или как мне лучше решить эту проблему?
Спасибо
EDIT: См. также другой мой вопрос, касающийся настройки - он должен немного пояснить
EDIT2: Это то, что находится внутри моего элемента add_comment
EDIT3: Это вывод HTML элемента add_comment. Одноразовый номер должен быть в части <div style="display:none;">
.
EDIT4: я поместил Debugger::log($this->Form->request->params);
внутри элемента (add_comment.ctp) и представления (add.ctp) и это показывает вывод.
Я также загрузил весь CommentController (здесь). Обратите внимание, что я указал функцию черной дыры для обнаружения ошибок типа «auth». Это связано с тем, что каждый раз, когда я вводил недопустимые данные в элемент add_comments.ctp и — отправляя форму — вызывалось фактическое действие добавления контроллера комментариев (и, следовательно, добавление представления комментариев), я получал ошибку типа «черная дыра» типа «auth ', который я не мог объяснить, поэтому я уловил это таким образом - это может быть даже связано с моими проблемами.
debug($this->Form->request->params)
в элемент и в представлении и давайте посмотрим на результат. Я предполагаю, что проблема заключается в том, как вы повторно визуализируете элемент, что я не совсем понимаю из вашего вопроса (код контроллера должен это прояснить). - person jeremyharris   schedule 22.08.2012_Token
в параметрах, который необходим для создания безопасных полей. Он даже отсутствует в представлении, что означает, что это может быть проблема с сеансом. Если вы отлаживаете$this->request->params
в контроллере, вы должны увидеть там токен. Если вы этого не сделаете, он не будет установлен. Если вы доступны, мы должны обсудить проблему в чате, а не в комментариях. - person jeremyharris   schedule 23.08.2012