Php 在zend框架中访问url段
我想知道有没有办法像codeigniter那样获得uri段。。 在codeigniter中,我们可以做到Php 在zend框架中访问url段,php,zend-framework,Php,Zend Framework,我想知道有没有办法像codeigniter那样获得uri段。。 在codeigniter中,我们可以做到 $this->uri->segment(3); 要获取url的第三段。。 比如说我有一个类似的url www.example.com/param1/param2/param3/param4 如何获取参数?在zend framework应用程序的默认路由设置中,您可以: 模块对象:/controller:/action/param:/value:/param2:/param2
$this->uri->segment(3);
要获取url的第三段。。
比如说我有一个类似的url
www.example.com/param1/param2/param3/param4
如何获取参数?在zend framework应用程序的默认路由设置中,您可以: 模块对象:/controller:/action/param:/value:/param2:/param2 因此:
/admin/news/edit/id/12/name/newstest
echo $this->getParam('id'); // prints 12
echo $this->getParam('name'); // prints newstest
非常肯定:
echo $_GET['id'];
应该也行
希望这有帮助
$this->getRequest()->getParams(); //Retrieves all parameters sent
$this->getRequest()->getPost(); //Retrieves the post array
$form->getValues(); //retrieves form values
这些是处理请求对象的常用方法,但它们不是
这是从$this->getRequest()->getParams()中可以得到的结果代码>
请注意,url参数是模块、控制器、操作、站点=1、提交=submit
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()的相同请求代码>
要自己获取这些值,请使用Zend_Debug::dump($var,'label');
使用Zend框架创建
这echo$_GET['id']
在ZF中被认为是非常糟糕的做法。我提出了一个类似zend router regex设置的解决方案
$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));
但是,如果我没有像id这样的键,它只是params的一个值呢?@tylerdurden我必须检查计算,但是如果你设置了一个路由,使第一个参数是id,那么不管你在参数中是否看到id这个词,你都应该能够通过$\u get['id']到达它。我猜,你也可以分解url以获取参数。它不起作用,因为在控制器之后,第一个参数应该是一个带有视图的操作。。但目前它只是一个没有视图的动态值,绝对不是操作,所以我得到了一个“页面未找到”错误。似乎一直以来都在进行简单的操作。ZF中的URL总是(除非您更改)键值对。因此,如果你知道url,你就知道参数。www.example.com/key/value/key/value
$paramArr = explode("/",$this->_request->getParam(1));