Zend_Controller_Router_Route_Hostname с дополнительной переменной - PullRequest
0 голосов
/ 11 января 2010

У меня проблема с цепочкой некоторых маршрутов с использованием другой переменной в конце.Я использую поддомены подстановочных знаков.Например: http://eric.mysite.dev/mypage1 mypage1 будет переменной GET.Итак, что я хочу, это http://mysite.dev/donate/now/index/id/eric/pagename/mypage1

У меня это работает нормально без названия страницы, как это:

$router=$fc->getRouter();
// Host routes
$accountHostRoute = new Zend_Controller_Router_Route_Hostname(':urlname.mysite.dev', array('module' => 'donate', 'controller' => 'now', 'action' => 'index'), array('urlname'=>'(?!www$).*')
        );

        // Account routes
        $router->addRoute('donateWithHostNameLocal', $accountHostRoute->chain(
            new Zend_Controller_Router_Route_Hostname(
                ':urlname.mysite.dev',
                array(
                    'module' => 'donate',
                    'controller' => 'now',
                    'action' => 'index'
                )
            )
        ));

Но я также хочу имя страницы, поэтому я попробовал это, но это не работает:

    // Account dynamic pages routes
    $router->addRoute('donateWithHostNamePageNameLocal', $accountHostRoute->chain(
        new Zend_Controller_Router_Route_Hostname(
            ':urlname.mysite.dev/:pagename',
            array(
                'module' => 'donate',
                'controller' => 'now',
                'action' => 'index'
            )
        )
    ));

Я получаю сообщение об ошибке приложения: Сообщение: ресурс 'default: mypage1' не найден

Трассировка стека: 0 / Applications / MAMP / bin / php5 / lib / php /ZendFramework-1.9.6 / library / Zend / Acl.php (751): Zend_Acl-> get ('default: mypage1') 1 /Applications/MAMP/htdocs/mysite/application/modules/default/plugins/AccessCheck.php (15): Zend_Acl-> isAllowed ('guest', 'default: mypage1', 'index') 2 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Controller/Plugin/Broker.php (309): Plugin_AccessCheck-> preDispatch (Object (Zend_Controller_Request_Http)) 3 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Controller/Front.ph(()Zend_Controller_Plugin_Broker-> preDispatch (Object (Zend_Controller_Request_Http)) 4 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Appliкатион / Bootstrap / Bootstrap.php (77): Zend_Controller_Front-> dispatch () 5 /Applications/MAMP/bin/php5/lib/php/ZendFramework-1.9.6/library/Zend/Application.php(358): Zend_Application_Bootstra> run () 6 /Applications/MAMP/htdocs/mysite/public/index.php(34): Zend_Application-> run () 7 {main}

Параметры запроса: массив ('controller' => 'mypage1 ',' action '=>' index ',' module '=>' default ',)

1 Ответ

1 голос
/ 11 января 2010

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

...