当前位置:  开发笔记 > 编程语言 > 正文

在Zend Framework中使用URL段作为操作方法参数

如何解决《在ZendFramework中使用URL段作为操作方法参数》经验,为你挑选了2个好方法。

在Kohana/CodeIgniter中,我可以使用以下格式的URL:

http://www.name.tld/controller_name/method_name/parameter_1/parameter_2/parameter_3 ...

然后按如下方式读取控制器中的参数:

class MyController 
{
    public function method_name($param_A, $param_B, $param_C ...)
    {
        // ... code
    }
}

你如何在Zend框架中实现这一目标?



1> Andrew Taylo..:

看一下Zend_Controller_Router类:

http://framework.zend.com/manual/en/zend.controller.router.html

这些将允许您定义Zend_Controller_Router_Route,它以您需要的方式映射到您的URL.

为Index控制器的Index操作设置4个静态参数的示例是:

$router = new Zend_Controller_Router_Rewrite();

$router->addRoute(
    'index',
    new Zend_Controller_Router_Route('index/index/:param1/:param2/:param3/:param4', array('controller' => 'index', 'action' => 'index'))
);

$frontController->setRouter($router);

在定义前端控制器后,会将其添加到引导程序中.

一旦进入您的行动,您就可以使用:

$this->_request->getParam('param1');

在您的操作方法中访问值.

安德鲁



2> leek..:

更新(2016年4月13日): 我的答案中的链接移动并已修复.但是,如果它再次消失 - 这里有一些替代方案,提供有关此技术的一些深入信息,以及使用原始文章作为参考材料:

带有函数参数的Zend Framework Controller操作

Zend_Controller接受参数的动作?


@ Andrew Taylor的回应是正确的Zend Framework处理URL参数的方式.但是,如果您想在控制器的操作中使用URL参数(如您的示例所示) - 请查看Zend DevZone上的本教程.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有