URL haritalama ile Zend Framework sorun

1 Cevap php

Ben taban URL ve varsayılan denetleyici bir eylem haritasına çalışıyorum.

Bu yalındır hatta bir 'kutunun dışında' özelliği ama nasıl varsayılan denetleyici eylemler Zend Framework kullanarak taban url harita yok olmalıdır yemin eder misin? Ben bu yüzden ben sadece belirgin bir şey eksik umut ediyorum Framework oldukça yeniyim.

Haritayı çalışılıyor:

/ my-domain.com sayfa için domain.com / index / my-page

Varsayılan olarak, diğer yolları kurulum her bozmadan.

Ben Zend_Router kullanarak kesmek olabilir ama örneğin diğer kurallar tatili /: Kontrolörü /: aksiyon /: modül /: kontrolörü /: eylem

note: /index/my-page is an example url - I need it to work for all the indexController actions dynamically.

URL Mapping examples as requested by 'tharkun' indexController has methods indexAction and contactAction need urls

/index
/index/contact
/
/contact

2nd controller testController has methods indexAction and monkeyAction need urls

/test
/test/index
/test/monkey

basically - if the sys can't find a controller of VAR then it looks for a action of VAR in the default controller

1 Cevap

Varsayılan denetleyici IndexController olduğunu.

(Varsayılan) haritalama bu gibi çalışır:

/ => IndexController::indexAction
/index => IndexController::indexAction
/index/foo => indexController::fooAction
/foo => FooController::indexAction

Yani, böyle bir kullanıcı tanımlı rota (varsayılan daha düşük önceliğe sahip olacaktır) ekleyin

$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(
    '/:action',
    array(
        'controller' => 'index'
    )
);
$router->addRoute('user', $route);

Bu varsayılan yolları benim kullanımını kırmadım.

Edit: coffeerings açıklamada söylediği gibi, bu varsayılan olmayan denetleyicileri indexAction kıracak.