【问题标题】:How can I setup a simple custom route using Zend Framework?如何使用 Zend Framework 设置简单的自定义路由?
【发布时间】:2010-04-13 00:23:04
【问题描述】:

我希望设置一个自定义路由,它为 Zend_Application 提供隐式参数名称。本质上,我有一个如下所示的传入 URL:

/StandardSystems/Dell/LatitudeE6500

我希望将其映射到 StandardsystemsController,并且希望将参数 "make" => "Dell""model" => "LatitudeE6500" 传递给该控制器。

如何使用 Zend_Application 和 Zend_Controller_Router 设置这样的系统?

编辑:我猜我并没有清楚地解释自己——如果品牌和型号不存在,我想将用户重定向到 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"

【问题讨论】:

    标签: php model-view-controller zend-framework routing


    【解决方案1】:

    您将首先实例化一个新的 Zend_Controller_Router_Route 来创建您的路由。

    $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);
    

    现在当你派发时,路由应该会生效。

    参考资料:

    【讨论】:

    • 那段代码去哪儿了?索引.php? Bootstrap.php 中的某个地方?
    【解决方案2】:

    资源:

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

    【讨论】:

    • 不错!如果索引控制器是一种“未知计算机”页面,有没有办法让它工作,如果没有指定品牌和型号,它只会进入“计算机”操作?目前,如果未指定品牌和型号,它会引发大量异常......
    • 没关系 - 能够弄清楚。将其发布为对我的问题的编辑。非常感谢:)
    • 好极了。希望这种事情记录得更好一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 2013-06-02
    • 1970-01-01
    • 2011-05-12
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多