2013-07-29 57 views
3

我有以下路徑添加到Phalcon\MVC\Router爾康路由 - 使航段可選

$router = new Phalcon\Mvc\Router(); 

$router->removeExtraSlashes(true) 
    ->setDefaultNamespace('My\Controllers') 
    ->setDefaultModule('default') 
    ->setDefaultController('index') 
    ->setDefaultAction('index'); 

$router->add('/admin/:controller/:action/:params', [ 
    'module' => 'admin', 
    'controller' => 1, 
    'action' => 2, 
    'params' => 3, 
    'namespace' => 'My\Admin\Controllers' 
])->setName('admin_module'); 

我辦理下列網址:

  1. /admin/foo/bar/baz - 做工不錯。我得到admin模塊,foo控制器,bar動作,"baz"參數。

  2. /admin/foo/bar - 作品不錯。我得到admin模塊,foo控制器,bar動作。

  3. /admin/foo - 不符合。我期望得到admin模塊,foo控制器,index動作。

  4. /admin - 不符合。我期望得到admin模塊,index控制器,index動作。

問題:

我怎樣才能讓航段可選的,默認的控制器和動作名稱的提供的默認值。我想避免爲/admin/admin/:controller定義額外的路線。

謝謝。

回答

2

,使這個作品最常見的方式是每個模式添加到Router定製Route具有相同paths選項(在Route::add()第二個參數)。 至於註釋路線,它可以爲Action方法選擇很少的@Route指令。 這種方式主要是爲了方便使用URL世代Route(路由名稱)會比通用的更快。

關於

+0

謝謝!我剛剛在幾天前瞭解到phalcon,並且我沒有意識到您也可以使用註釋來執行路由(我只通過註釋來定義模型中的字段類型)。 – AzDesign