2015-04-18 37 views
7

Próbuję zdefiniować RESTful trasy dla kontrolerów podkatalogu. Chcę móc tworzyć trasy dla adresu URL pod adresem admin/questions/*. Moje kontroler jest Admin_QuestionsController:Zend_Rest_Route nie działa dla kontrolera podkatalogu (np. Admin/questions)

- application 
    - controllers 
    -Admin 
     QuestionsController.php (class Admin_QuestionsController) 

Poniżej jest jak ja deklarowania moje relaksującego trasy dla tego kontrolera:

$restRoute = new Zend_Rest_Route($front, array(), array(
    'admin' => array('questions') 
)); 
$router->addRoute('rest', $restRoute); 

..from dokumentacji nie mogę zobaczyć, co robię źle - http://framework.zend.com/manual/1.12/en/zend.controller.router.html#zend.controller.router.routes.rest. Jednak pojawia się następujący błąd:

Invalid controller specified (admin) 

mogę znaleźć drogi do pracy, kiedy to nie deklarują jako trasy rekreacyjne:

$router->addRoute('admin_questions', 
    new Zend_Controller_Router_Route('/admin/questions', array(
     'controller' => 'Admin_Questions', 
     'action' => 'index') 
    ) 
); 

..so Nie sądzę, mam mieć struktura folderów jest nieprawidłowa lub nazwa klasy. Ale potrzebuję RESTful tras, których nie jestem w stanie osiągnąć.

Odpowiedz

3

Zdefiniowana trasa o numerze Zend_Rest_Route działa, jeśli włączone są moduły Zend. W dokumentacji wspomniano o "przetłumaczeniu metody HTTP i URI na moduł, kontroler i działanie". Aby włączyć moduły, należy dodać następujące dwie linie w swojej application.ini:

resources.modules[] = 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 

Następnie należy utworzyć katalog w application/modules nazwie admin/controllers i stworzyć swój QuestionsController w application/modules/admin/controllers/QuestionsController.php.

Reszta aplikacji powinna (miejmy nadzieję) nadal działać jako moduł default.