Zend framework Zend Framework application.ini路由器问题
好的,我对这一点还不太熟悉,我仔细阅读了所有的教程并回答了我能找到的问题。不幸的是,我还没有找到一个适合我的完整的application.ini 我一定是在什么地方塞满了东西——我可以让基本路由正常工作,但只要我尝试添加一个变量,我就无法让它工作。因此/guide to works,但是/guide to/london给出了错误“someplace未指定” 我正在application.ini中执行所有路由。这是我的档案:Zend framework Zend Framework application.ini路由器问题,zend-framework,Zend Framework,好的,我对这一点还不太熟悉,我仔细阅读了所有的教程并回答了我能找到的问题。不幸的是,我还没有找到一个适合我的完整的application.ini 我一定是在什么地方塞满了东西——我可以让基本路由正常工作,但只要我尝试添加一个变量,我就无法让它工作。因此/guide to works,但是/guide to/london给出了错误“someplace未指定” 我正在application.ini中执行所有路由。这是我的档案: [production] phpSettings.display_sta
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 1
resources.layout.layoutPath = APPLICATION_PATH "/views/layouts/"
resources.layout.layout = wrapper
resources.view = ""
resources.router.routes.home.route = "/stuff"
resources.router.routes.home.defaults.module = default
resources.router.routes.home.defaults.controller = index
resources.router.routes.home.defaults.action = index
resources.router.routes.guide-to.route = "/guide-to"
resources.router.routes.guide-to.defaults.controller = "destination"
resources.router.routes.guide-to.defaults.action = "guide-to"
resources.router.routes.place.route = "guide-to/:someplace"
resources.router.routes.place.defaults.controller = "destination"
resources.router.routes.place.defaults.action = "guide-to"
resources.router.routes.guides.route = "/guiderrrs"
resources.router.routes.guides.defaults.controller = destination
resources.router.routes.guides.defaults.action = guiderrrs
resources.router.routes.guidez.route = "/guidez"
resources.router.routes.guidez.defaults.controller = destination
resources.router.routes.guidez.defaults.action = guidez
pagination.item.count.per.page = 10
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
有人能发现问题吗?或者是否有人可以共享一个可用的application.ini
收到所有捐款,谨致谢意 您需要为someplace变量指定默认值。someplace是可变的,所以您需要给它一个默认值。否则,它将默认为取消定义。 我这样想:
resources.router.routes.place.defaults.someplace="deault_value"
在我看来,把你的url映射到确切的名字不是一个好主意。
因为url真的与应用程序结合在一起,所以它可以改变
我更喜欢在引导中使用通用路由器。然后将我的url映射到它。使用这种方法,我的路由系统与我开始一个新项目时是一样的。
在引导程序中使用这样的seomthing。它甚至比定义所有路线都要短
因为如果事情改变了,你就需要重新改变
protected function _initRoutes(){
$front_controller=self::getFrontController();
$router = $front_controller->getRouter();
$standard_route=new Zend_Controller_Router_Route(
':lang/:module/:controller/:action/:param_one/:param_two/:param_three/*',
array( 'lang'=>$user_language,
'module'=>'default',
'controller'=>'index',
'action' => 'index',
'param_one'=>NULL,
'param_two'=>NULL,
'param_three'=>NULL
)
);
$router->addRoute('standard', $standard_route);
$default_route=new Zend_Controller_Router_Route(
':lang/:controller/:action/:param_one/:param_two/:param_three/*',
array( 'lang'=>$user_language,
'module'=>'default',
'controller'=>'index',
'action' => 'index',
'param_one'=>NULL,
'param_two'=>NULL,
'param_three'=>NULL
)
);
$router->addRoute('default', $default_route);
$front_controller->setRouter($router);
}
Lang是我自己的国际化支持变量。您的配置是正确的。从错误判断,我相信您使用的参数是错误的 在默认模块中应该有一个名为DestinationController的控制器,并且至少要有这个控制器才能访问someplace变量
class DestinationController extends Zend_Controller_Action
{
public function guideToAction()
{
var_dump($this->getRequest()->getParams());
var_dump($this->getRequest()->getParam('someplace'));
exit;
}
}
这对我来说适用于您提供的配置
希望这能有所帮助。有一件事需要记住:路线是按相反的顺序匹配的,因此请确保首先定义最通用的路线。我不认为这是你的问题,但我不确定,因为我不确定最重要的路线是第一条还是最后一条:)那是工作还是我埃文-很棒的工作!我只需要改变一点-添加了一个默认值-但现在我又回到了正轨!resources.router.routes.defaults.place.someplace=“deault\u值”