我在路线文件中定义了PagesController:
Route::controller('/', 'PagesController');
但是我使用了更多的路线,如:
Route::get('/admin', function()
{
....some code here
});
我的第二条路线不起作用,因为所有其他路线都试图在PagesController中查找功能。我可以将我的控制器更改为:
Route::controller('pages', 'PagesController');
但是在我的主页上,所有链接都会像www.test.com/pages / ...,但我不需要那些“页面”。如何用面具或类似的东西定义我的控制器?
答案 0 :(得分:1)
Laravel允许您使用简单的REST命名约定轻松定义单个路径来处理控制器中的每个操作。首先,使用Route :: controller方法定义路径:
Route::controller('pages', 'PagesController')
这是使用REST命名约定定义控制器中所有操作的单一路径,因此您可以获得/ pages。
对于应用的根目录,您需要指定要在PagesController中调用的方法。
示例:
Route::get('/', array('as' => 'home', 'uses' => 'PagesController@getIndex'));
将此行放在路线文件中路线的顶部。
答案 1 :(得分:0)
尝试将Route::controller({same content as the question})
更改为Route::resource({same content as the question})
答案 2 :(得分:0)
将路线定义的顺序更改为:
Route::get('/admin', function()
{
....some code here
});
Route::controller('/', 'PagesController');
现在首先查找/admin
,如果找不到它,那么当它们转到其他路线时...