проблема с Zend URL-помощником $ this-> url - PullRequest
3 голосов
/ 08 апреля 2011

У меня ситуация с Zend-маршрутом и методом $ this-> url

В моем bootstrap.php у меня есть несколько маршрутов как

 $route = new Zend_Controller_Router_Route(
        'dashboard',
        array(
            'action'     => 'index',
            'controller' => 'index',
            'module'     => 'dashboard',
            'isAdmin'    => true
        )
    );
    $router->addRoute('dashboard', $route);

$route = new Zend_Controller_Router_Route(
        'logout',
        array(
            'action'     => 'logout',
            'controller' => 'index',
            'module'     => 'main',
            'isAdmin'    => true
        )
    );
    $router->addRoute('logout', $route);

$route = new Zend_Controller_Router_Route(
        'manage-users',
        array(
            'action'     => 'list',
            'controller' => 'index',
            'module'     => 'main',
            'isAdmin'    => true
        )
    );
    $router->addRoute('manage-users', $route);

$route = new Zend_Controller_Router_Route(
        'edit-user/:id',
        array(
            'action'     => 'edit',
            'controller' => 'index',
            'module'     => 'main',
        ),
         array('id' => '[0-9]+')
    );
    $router->addRoute('edit-user', $route);


 $route = new Zend_Controller_Router_Route(
        '/manage-subcat/:ident',
        array(
            'action'     => 'index',
            'controller' => 'subcategory',
            'module'     => 'category',
            'ident'      => '',
            array(
                'ident' => '[a-zA-Z-_0-9]+',
            )
        )
    );
    $router->addRoute('manage-subcat', $route);

взять случай последнего маршрута

на мой взгляд, когда я пишу

<a href="<?php echo $this->url(array ('controller'=> 'subcategory', 'action'=> 'index', 'module'=> 'category', 'ident' => $cats->catident ), 'manage-subcat', true ) ?>"><?php echo $cat->CategoryName ?></a>

Я получаю URL как http://127.0.0.10/manage-subcat

& когда я отключаю последний маршрут в начальной загрузке, а затем пишу в свой файл просмотра

<a href="<?php echo $this->url(array ('controller'=> 'subcategory', 'action'=> 'index', 'module'=> 'category', 'ident' => $cats->catident ) ) ?>"><?php echo $cat->CategoryName ?></a>

Я получаю URL как тот же http://127.0.0.10/category/subcategory

В идеале я должен получить http://127.0.0.10/category/subcategory/ident/some-category за этот

& для предыдущего должно быть http://127.0.0.10/manage-subcat/ident/some-category

Этот пример кода не работает с пользовательскими маршрутами, а также с традиционными маршрутами, и я пытаюсь определить, почему этот пример не работает правильно.

1 Ответ

1 голос
/ 11 апреля 2011

Помимо ошибки форматирования объявления маршрута, отмеченной zerocrates , это может быть просто опечатка в вашем коде?

Я заметил, что вы используете $cat->CategoryName (единственное число $cat) в одномпоместите и $cats->catident (множественное число $cats) в другом.

Если передано значение параметра null, маршрутизатор пропустит этот параметр в созданном URL.

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