Zend - выводить лучший модуль url? - PullRequest
1 голос
/ 20 августа 2010

В настоящее время я вывожу URL-адрес определенного модуля следующим образом:

$this->view->url(array('controller'=>'index','action'=>'index','module'=>'somemodule'))

Проблема в том, что когда я смотрю:

/somemodule/action1/paramid/paramval

URL отображается как:

/somemodule/index/index/paramid/paramval

Когда все, чего я действительно хочу, это:

/somemodule/

Есть идеи? Я использовал вышеупомянутый массив URL, потому что я пытаюсь заставить его отображать правильный URL. к сожалению, просто array('module'=>'somemodule') не работает ...

1 Ответ

0 голосов
/ 20 августа 2010

Странно, я бы подумал, что по умолчанию используется индекс / индекс, если они не указаны.Вы можете попробовать что-то настроить с помощью Zend_Controller_Router_Route;

$router = $ctrl->getRouter(); // returns a rewrite router by default
$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('somemodule',
                                     array('module' => 'somemodule',
                                           'controller' => 'index',
                                           'action' => 'index'))
);

Однако вам нужно будет настроить маршруты для захвата: id /: val в переменные.Вы можете сделать это с помощью другого addRoute (), назвав каждую переменную перед двоеточием.

$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('somemodule/:id/:val',
                                     array('module' => 'somemodule',
                                           'controller' => 'index',
                                           'action' => 'index'))
);

Тогда вы сможете увидеть модуль без индекса / индекса в URL, что может решить проблему сurl helper.

Подробнее здесь http://framework.zend.com/manual/en/zend.controller.router.html

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