CakePHP中的重定向和渲染有什么区别?

时间:2009-07-02 10:09:08

标签: cakephp redirect

是否还有其他命令可以将控制器重定向到除重定向和渲染之外的特定视图页面?

我的重定向为

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

但如果我给出

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

它不会被重定向到该页面。

有问题吗?

1 个答案:

答案 0 :(得分:12)

对redirect()的调用会发出HTTP redirect。重定向后没有任何事情发生,因为CakePHP只是停止。您在重定向呼叫后放置的任何内容都不会被执行。相反,浏览器只是向您要重定向到的URL发出新的HTTP GET。

对render()的调用只是加载一个视图。它需要一个视图的路径,而不是URL。它没有重定向。假设$ userID在您的情况下为“101”。对render()的调用将尝试加载以下文件:

应用程序/视图/形式/主页/ 101.ctp

由于该文件不存在,所以没有任何反应。