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

Ang*_*ine 6 redirect cakephp

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

我有重定向作为

$this->redirect('/forms/homepage/'.$userId);
Run Code Online (Sandbox Code Playgroud)

但是,如果我给

$this->render('/forms/homepage/'.$userId);
Run Code Online (Sandbox Code Playgroud)

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

有什么不对吗?

San*_*hal 12

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

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

应用程序/视图/表格/主页/ 101.ctp

由于该文件不存在,因此没有任何反应.