【发布时间】:2010-11-07 14:19:44
【问题描述】:
除了重定向和渲染之外,还有其他命令可以将控制器重定向到特定的视图页面吗?
我有重定向
$this->redirect('/forms/homepage/'.$userId);
但如果我给了
$this->render('/forms/homepage/'.$userId);
它不会被重定向到那个页面。
有什么问题吗?
【问题讨论】:
除了重定向和渲染之外,还有其他命令可以将控制器重定向到特定的视图页面吗?
我有重定向
$this->redirect('/forms/homepage/'.$userId);
但如果我给了
$this->render('/forms/homepage/'.$userId);
它不会被重定向到那个页面。
有什么问题吗?
【问题讨论】:
对redirect() 的调用发出HTTP redirect。重定向后什么都没有发生,因为 CakePHP 只是停止了。您在重定向调用之后放置的任何内容都不会被执行。相反,浏览器只是向您要重定向到的 URL 发出一个新的 HTTP GET。
对 render() 的调用只是加载一个视图。它需要一个视图的路径,而不是 URL。它不重定向。假设在您的情况下 $userID 是 '101'。对 render() 的调用将尝试加载以下文件:
app/views/forms/homepage/101.ctp
由于该文件不存在,所以什么都不会发生。
【讨论】: