Модуль SocialEngine с пользовательскими маршрутами - PullRequest
2 голосов
/ 22 февраля 2012

Я разрабатываю модуль для пакета SocialEngine, и я хотел бы иметь возможность указать несколько пользовательских маршрутов.

В настоящее время я редактирую файл Bootstrap.php, найденный в каталоге моего модуля.со следующим:

class Courses_Bootstrap extends Engine_Application_Bootstrap_Abstract
{
    protected function _initRouter(){
        $fc = Zend_Controller_Front::getInstance();
        $router = $fc->getRouter();
        $router->addRoute('courses', new Zend_Controller_Router_Route('courses/activity/:activity_id', array('module' => 'courses', 'controller' => 'index','action' => 'activity')));
        $router->addRoute('courses', new Zend_Controller_Router_Route('courses/course/edit/:course_id', array('module' => 'courses', 'controller' => 'course','action' => 'edit')));
        $router->addRoute('courses', new Zend_Controller_Router_Route('courses/course/create/:course_id', array('module' => 'courses', 'controller' => 'course','action' => 'create')));

        return $router;
    }

}

Однако может показаться, что, когда я указываю более 1 маршрута, все маршруты перестают проходить в пользовательской переменной (course_id или activity_id)

Я получаю переменнуюследующим образом:

$course_id = $this->getRequest()->getParam("course_id");

Я выбрал подход отсюда;http://tjgamble.com/2011/04/adding-custom-routes-to-your-socialengine-4-modules/

Большое спасибо,

Энди

1 Ответ

3 голосов
/ 22 февраля 2012

вы должны дать им разные имена:

    $router->addRoute('courses_activitiy', new Zend_Controller_Router_Route('courses/activity/:activity_id', array('module' => 'courses', 'controller' => 'index','action' => 'activity')));
    $router->addRoute('courses_course', new Zend_Controller_Router_Route('courses/course/edit/:course_id', array('module' => 'courses', 'controller' => 'course','action' => 'edit')));
    $router->addRoute('courses_create', new Zend_Controller_Router_Route('courses/course/create/:course_id', array('module' => 'courses', 'controller' => 'course','action' => 'create')));
...