我想知道有没有什么办法可以像codeigniter提供的uri段.. 在codeigniter中我们可以做到;在zend框架中访问网址段
$this->uri->segment(3);
得到URL的第3段.. 让说,我有一个像网址;
www.example.com/param1/param2/param3/param4
我怎样才能得到参数?
在默认路由设置在Zend框架的应用程序我想知道有没有什么办法可以像codeigniter提供的uri段.. 在codeigniter中我们可以做到;在zend框架中访问网址段
$this->uri->segment(3);
得到URL的第3段.. 让说,我有一个像网址;
www.example.com/param1/param2/param3/param4
我怎样才能得到参数?
在默认路由设置在Zend框架的应用程序我想出了一个像zend路由器正则表达式设置的解决方案;
$route = new Zend_Controller_Router_Route_Regex(
'module/(.*)',
array(
'module' => 'module',
'controller' => 'index',
'action' => 'index'));
$router->addRoute('module', $route);
in module index controller's index action;
$paramArr = explode("/",$this->_request->getParam(1));
那么你将有: modulee:/控制器:/动作/参数:/值:/参数2:/参数2
所以对:
/admin/news/edit/id/12/name/newstest
echo $this->getParam('id'); // prints 12
echo $this->getParam('name'); // prints newstest
很肯定:
echo $_GET['id'];
应太。
希望这会有所帮助!
但如果我没有像id这样的密钥,它只是一个params值? – 2012-02-08 15:26:06
@tylerdurden我必须检查tocumentation,但是如果你设置了一个路由以便第一个参数是id,那么无论你在页面中看到单词ID,你都应该能够通过$ _GET ['id']得到它。参数。我想,你也可以将网址分解到参数。 – Iznogood 2012-02-08 15:41:26
$this->getRequest()->getParams(); //Retrieves all parameters sent
$this->getRequest()->getPost(); //Retrieves the post array
$form->getValues(); //retrieves form values
这些是与所述请求对象工作常见的方式,它们不是
这是从$this->getRequest()->getParams();
通知什么期望该URL参数模块,控制器,动作站= 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中被认为是非常糟糕的做法。
它不工作,因为在控制器第一个参数后,预计是一个视图的行动..但目前这是一个只是动态的值没有意见和absoulutely它不是行动,所以我得到一个“页面找不到”的错误。 – 2012-02-09 09:21:34
似乎一路走来简单的操作。 ZF中的网址始终(除非您更改)键值对。所以如果你知道这个url,你就知道参数。 www.example.com/key/value/key/value – RockyFord 2012-02-09 10:55:08