Php 如何使用Zend Framework设置简单的自定义路由?

Php 如何使用Zend Framework设置简单的自定义路由?,php,model-view-controller,zend-framework,routing,Php,Model View Controller,Zend Framework,Routing,我希望设置一个自定义路由,为Zend_应用程序提供隐式参数名称。基本上,我有一个传入URL,如下所示: /StandardSystems/Dell/LatitudeE6500 我希望将其映射到StandardsystemsController,并希望向该控制器传递参数make=>Dell和model=>LatitudeE6500 如何使用Zend_应用程序和Zend_控制器_路由器设置这样的系统 编辑:我没有解释清楚我猜-如果make和model不存在,我想将用户重定向到Standardsys

我希望设置一个自定义路由,为Zend_应用程序提供隐式参数名称。基本上,我有一个传入URL,如下所示:

/StandardSystems/Dell/LatitudeE6500
我希望将其映射到StandardsystemsController,并希望向该控制器传递参数make=>Dell和model=>LatitudeE6500

如何使用Zend_应用程序和Zend_控制器_路由器设置这样的系统

编辑:我没有解释清楚我猜-如果make和model不存在,我想将用户重定向到StandardsystemsController上的另一个操作。目前,在application.ini中使用Ballsacian1的答案:

resources.router.routes.StandardSystem.route = "/StandardSystem/:make/:model"
resources.router.routes.StandardSystem.defaults.controller = "StandardSystem"
resources.router.routes.StandardSystem.defaults.action = "system"
resources.router.routes.StandardSystem.defaults.make = ""
resources.router.routes.StandardSystem.defaults.model = ""
resources.router.routes.StandardSystemDefault.route = "/StandardSystem"
resources.router.routes.StandardSystemDefault.defaults.controller = "StandardSystem"
resources.router.routes.StandardSystemDefault.defaults.action = "index"
资源:

resources.router.routes.StandardSystems.route = "/StandardSystems/:make/:model"
resources.router.routes.StandardSystems.defaults.controller = "standardsystems"
resources.router.routes.StandardSystems.defaults.action = "index"

您应该首先实例化一个新的Zend_控制器_路由器_路由来创建路由

$stdsys_route = new Zend_Controller_Router_Route(
    '/StandardSystems/:make/:model',
    array(
        'controller' => 'StandardsystemsController',
        'action' => 'myaction'
    );
);
然后需要将此路由添加到路由器

$front_controller = Zend_Controller_Front::getInstance();
$front_controller->getRouter()->addRoute('stdsys', $stdsys_route);
现在当你调度时,路线应该生效了

参考资料:


那代码去哪里了?Index.php?在Bootstrap.php中的某个地方?很好!如果索引控制器是某种未知的计算机页面,并且只有在没有指定make和model的情况下才会执行计算机操作,那么有没有办法使其工作?目前,如果没有指定make和model,它会抛出大量异常……Nevermind-能够解决这个问题。将其作为我问题的编辑发布。非常感谢:太好了。希望这类事情有更好的记录