2013-08-27 1 views
0

У меня есть перенаправление в представлении, которое правильно работало в CakePHP 1.2. Я только что обновил до 1.3, и эта одностраничная перенаправление перестала работать. Я предполагаю, что это что-то простое, но ничего не могу найти в документации по миграции.AppController :: redirect() не работает в CakePhp 1.3

в моих взглядах \ о \ index.ctp, у меня есть эта строка:

AppController::redirect("howitworks/index"); 

Когда я ударил, что о/индексной странице, я получаю эту ошибку:

Notice (8): Undefined property: View::$Component [CORE\cake\libs\controller\controller.php, line 678]

Fatal error: Call to a member function beforeRedirect() on a non-object in "{localaddress}"\cake\libs\controller\controller.php on line 678

Я не могу просто перенаправляйте страницу, потому что перенаправление является частью последовательности if, где, если контроллер не передает какой-либо текст в .ctp, он перенаправляется на эту другую страницу. Я удалил весь этот код, чтобы осталась только перенаправление, чтобы убедиться, что это проблема.

Можете ли вы направить меня, как исправить это, пожалуйста?

+0

Для уточнения - я могу получить доступ к howitworks/index напрямую без проблем, если я наберу его в свою адресную строку. – dwlorimer

+1

Перенаправление обычно выполняется в контроллере, а не в представлении, поэтому я бы пересмотрел ваш подход. – dhofstet

+0

@ dhofstet, я считал, что это может быть проблемой. Это последовательность if, которая заставляет меня хотеть оставить ее (и она работает в 1.2). Если .ctp не получает $ text от контроллера, он перенаправляет. Я буду переписывать код в контроллер, если мне это нужно, но я хотел бы понять, почему он работал в версии 1.2, а не 1.3. – dwlorimer

ответ

0

Я как-то предложил @dhofstet и просто переписал его, чтобы перенаправление было в контроллере. Не знаете, почему оригинал работал, но это практика торта, чтобы перенаправить в контроллер, как он сказал.