【问题标题】:CakePHP 2x forward from viewCakePHP 2x 向前看
【发布时间】:2013-04-10 06:49:58
【问题描述】:

在 CakePHP 2x 中,我想在满足某些条件时显示一些文本,并在满足另一个条件时转发到另一个页面,类似于下面的代码。但是第二部分不起作用。我知道重定向只能从控制器工作。有什么办法可以做到这一点?

if ($enable==2){ 
    echo $introduction; 
    } 
elseif ($enable==1){ 
    **$this->redirect(array('controller'=>'pages' , 'action' => 'home'));**
     }

提前致谢。

【问题讨论】:

  • 为什么不能在控制器中做重定向,那样会更容易?

标签: cakephp cakephp-2.0 cakephp-2.1


【解决方案1】:

尝试使用 js helper,如下所示:

$this->Js->domReady('window.location.href="/your/URL/Here";');

【讨论】:

  • 这不是处理解决方案的正确方法。 CakePHP 重定向确实应该在 Controller 中处理。由于几个原因(浏览器兼容性、最佳实践、自动 URL 路由、SEO 等),使用 Javascript 是一个坏主意。
【解决方案2】:

看起来你的逻辑是正确的,但你的 redirect() url 不正确。

你的控制器(不是你的视图)应该有这个作为重定向:

$this->redirect(array('controller'=>'pages', 'action'=>'display', 'home'));

PagesController 的工作方式与您的其他控制器略有不同。默认情况下,它使用“显示”操作来呈现页面。然后你传递页面名称。

以下是有关 PagesController 的更多信息:http://book.cakephp.org/2.0/en/controllers/pages-controller.html

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    相关资源
    最近更新 更多