2015-10-03 30 views
0

我有這樣的路線,這是確定:彈頭路線3

Router::connect('/tour/:slug', 
    ['controller' => 'Tours','action' => 'view'], 
    ['slug'=>'[^\/]+','pass'=>['slug']] 
); 

我想刪除「/旅遊」,但它缺少控制器錯誤:

Router::connect('/:slug', 
    ['controller' => 'Tours','action' => 'view'], 
    ['slug'=>'[^\/]+','pass'=>['slug']] 
); 

錯誤頁面(在請求:http://localhost/nextholiday/a_slug): enter image description here

我該怎麼辦?

+0

嗨,你有什麼錯誤? –

+0

Router :: connect('/ xxx /:slug', ['controller'=>'Tours','action'=>'view'], ['slug'=>'[^ \ /] +' ,'pass'=> ['slug']] ) 試試這個URl ot的運行? –

+3

您定義路線的順序很重要,確切的錯誤訊息也是如此 - 這兩個問題都沒有。 – AD7six

回答

1

我使用相同的路線。

$routes->fallbacks(DashedRoute::class); 

例(內部路由器::範圍( '/' ...)的:但是,只有當路由前工作

$routes->connect(
     '/:slug', 
     ['controller' => 'Articles', 'action' => 'view'], 
     [ 
      'pass' => ['slug'], 
      'slug' => '[^\/]+' // Taken from your example 
     ] 
    ); 
    // ... 
    $routes->fallbacks(DashedRoute::class); 

如果你正在做的一切權利,在DebugKit路由將看到路由(URI模板)/:controller和/:controller /:action/*正好在/:slug下面。其他所有路由必須在/:slug之上。

如上所述,順序很重要。如果您的正則表達式模式錯誤,我在使用「[a-z0-9] +(?: - [a-z0-9] +)*」的slu pattern模式,有時會顯示缺失的控制器。「