В чем разница между перенаправлением и рендерингом в CakePHP?

Есть ли какая-либо другая команда для перенаправления контроллера на определенную страницу просмотра, кроме перенаправления и рендеринга?

У меня есть перенаправление как

$this->redirect('/forms/homepage/'.$userId);

Но если я дам

$this->render('/forms/homepage/'.$userId);

он не перенаправляется на эту страницу.

Что-то не так?


person Angeline    schedule 02.07.2009    source источник


Ответы (1)


Вызов redirect() вызывает перенаправление HTTP. После перенаправления ничего не происходит, потому что CakePHP просто останавливается. Все, что вы поместите после вызова перенаправления, не будет выполнено. Вместо этого браузер просто выдает новый HTTP GET для URL-адреса, на который вы перенаправляетесь.

Вызов render() просто загружает представление. Он принимает путь к представлению, а не URL-адрес. Он не перенаправляет. Предположим, что $userID в вашем случае равен «101». Вызов render() попытается загрузить следующий файл:

приложение/представления/формы/домашняя страница/101.ctp

Поскольку этого файла не существует, ничего не происходит.

person Sander Marechal    schedule 02.07.2009