2013-01-18 31 views
8

我正在使用Laravel PHP框架,並且想知道一些事情。默認application/routes.php文件包含此:如何在Laravel中設置默認控制器?

Route::get('/', function() 
{ 
    return View::make('home.index'); 
}); 

這只是輸出的看法,但我怎麼稱呼從那裏控制器?

我可以刪除上面的整個路由,並用Route::controller('home')替換它,它似乎使用默認URL(即example.com/)上的家庭控制器。但是像Route::controller('article')之類的任何其他控制器都不起作用,只能在example.com/article上運行。我如何將文章控制器設置爲默認值?

回答

12

只是通過控制器作爲一個字符串,與類名和方法名之間@

Route::get('/', '[email protected]'); 

the docs(滾動到例如通過標題註冊指向一個控制器操作的路線)。

+0

謝謝,不知何故,我錯過了頁面的一部分。那麼'家'的事情呢? Route :: get('/','home @ index')與Route :: controller('home')'相同嗎? – DisgruntledGoat

+0

@DisgruntledGoat - 沒有。 'Route :: get('/','home @ index')'只會註冊索引方法,並且只能在'/'路由上。 'Route :: controller('home')'將註冊其所有方法,映射到它們各自的URL。 –

+0

後者將如何工作?如果你把一個整個控制器註冊到'/',那麼'/ example'不會在控制器被稱爲'example'和家庭控制器上的'example'方法之間變得模糊不清。 – DisgruntledGoat

2

/」是特殊位置,您可以通過Route::get('/','[email protected]')進行設置。

對於家庭控制器上的所有其他行動,你將有網址這樣有「/home/action1」或「/home/action2」。

我只是想讓你明白,沒有任何好處,需要將任何控制器分配到「/」。

我希望我的回答很清楚。再次,這不是對你的問題的嘗試回答,而是對你的建議,如果你堅持路由處理。我是在同一階段,你幾天回來:)

+2

這是一箇舊帖子,但它是谷歌的頂部之一,所以我爲此評論。如果有人發現這一點,當你設置一個Route :: controller('/','Controller')時,你會打破所有其他的鏈接,這就是爲什麼使用控制器路由缺省的'/'不是個好主意 –

相關問題