【问题标题】:How to redirect to Home page (Default page) in zend framework 2?如何在 zend 框架 2 中重定向到主页(默认页面)?
【发布时间】:2017-10-20 06:31:51
【问题描述】:

我在一个名为“身份验证”的模块中。使用此模块成功登录后,我希望我的用户重定向到主页(默认页面)。

我尝试了以下路线。但是没用。

$redirect = '/' ;
//$redirect = '' ;
//$redirect = null ;

return $this->redirect()->toRoute($redirect);

它会产生以下错误

找不到名为“”的路线

我不知道的另一个模块中没有定义主路由。那么如何重定向到主页呢?

【问题讨论】:

  • 有什么错误吗?我认为 toRoute() 需要一个命名路由。
  • @kerbholz 是的。它看起来 toRoute() 需要一个名称。更新了错误信息。
  • 所以理论上你应该创建/创建/拥有一个名为home(或其他任何东西)的命名路由指向/。可以使用 ->toRoute('home') 从任何地方访问此命名路由。
  • 由于它在另一个模块中,我不知道它是什么。我正在寻找类似 ->toHome() 或类似的东西?
  • toRoute() 确实期望路由的 name。您可以在任何模块的 *.config.php 文件中查找此内容,或者在应用程序启动后,您可以通过 ServiceManager 请求配置(即,调试时在任何工厂中使用 $serviceLocator->get('config'))。如果您开始使用 ZF2(或 3)的 Skeleton Application 并保留默认配置,默认情况下主页路由命名为'home'(默认位置:我的头顶/module/Application/config/module.config.php)。因此,您可以使用:$this->redirect()->toRoute('home').

标签: php zend-framework zend-framework2


【解决方案1】:

如果你不能说出你的家乡路线名称是什么,你至少有两个选择:

  1. 使其可配置 - 将主路由名称放入您的模块/应用程序配置中,然后在控制器中检索它。
  2. 只需重定向到/:

    return $this->redirect()->toUrl('/');
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2010-11-17
    • 1970-01-01
    • 2012-09-11
    • 2013-12-26
    相关资源
    最近更新 更多