我想知道是否有任何方法可以获得像codeigniter提供的uri段... 在codeigniter我们可以做;
$this->uri->segment(3);
获取第3段网址.. 假设我有一个网址;
www.example.com/param1/param2/param3/param4
我如何获得参数?
答案 0 :(得分:1)
在zend框架应用程序中的默认路由设置中,您将拥有: modulee:/控制器:/动作/ PARAM:/值:/参数2:/ param2的
所以:
/admin/news/edit/id/12/name/newstest
echo $this->getParam('id'); // prints 12
echo $this->getParam('name'); // prints newstest
非常确定:
echo $_GET['id'];
也应该有用。
希望这有帮助!
答案 1 :(得分:0)
$this->getRequest()->getParams(); //Retrieves all parameters sent
$this->getRequest()->getPost(); //Retrieves the post array
$form->getValues(); //retrieves form values
这些是处理请求对象的常用方法,它们不是
这是$this->getRequest()->getParams();
的期望
请注意,网址参数为模块,控制器,操作,工作站= 1,提交=提交
Params array(5) {
["module"] => string(5) "admin"
["controller"] => string(5) "index"
["action"] => string(5) "index"
["station"] => string(1) "1"
["submit"] => string(6) "Submit"
}
这是使用$this->getRequest()->getPost();
Post array(2) {
["station"] => string(1) "1"
["submit"] => string(6) "Submit"
}
自己使用Zend_Debug :: dump($ var,'label'); 使用Zend Framework创建。
这个echo $_GET['id'];
在ZF中被认为是非常糟糕的做法。
答案 2 :(得分:0)
我提出了像zend router regex setting这样的解决方案;
$route = new Zend_Controller_Router_Route_Regex(
'module/(.*)',
array(
'module' => 'module',
'controller' => 'index',
'action' => 'index'));
$router->addRoute('module', $route);
在模块索引控制器的索引操作中;
$paramArr = explode("/",$this->_request->getParam(1));