доступ к сегментам URL в Zend Framework - PullRequest
2 голосов
/ 08 февраля 2012

Я хочу знать, есть ли какой-нибудь способ получить сегмент uri, такой как codeigniter. В Codeigniter мы можем сделать;

$this->uri->segment(3);

, чтобы получить 3-й сегмент url. Допустим, у меня есть URLкак;

www.example.com/param1/param2/param3/param4

Как я могу получить параметры?

Ответы [ 3 ]

1 голос
/ 08 февраля 2012

В настройках маршрута по умолчанию в приложении Zend Framework вы должны иметь: modulee: / 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'];

Должно работать тоже.

Надеюсь, это поможет!

0 голосов
/ 09 февраля 2012

Я нашел решение, подобное настройке регулярного выражения Zend router;

    $route = new Zend_Controller_Router_Route_Regex(
                'module/(.*)',
                 array(
                        'module' => 'module',
                        'controller' => 'index',
                        'action'     => 'index'));

    $router->addRoute('module', $route);

в действии index контроллера индекса модуля;

    $paramArr = explode("/",$this->_request->getParam(1));
0 голосов
/ 08 февраля 2012
$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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...