Laravel控制器用掩码定义

时间:2014-08-08 11:12:58

标签: php laravel laravel-4 laravel-routing

我在路线文件中定义了PagesController:

Route::controller('/', 'PagesController');

但是我使用了更多的路线,如:

Route::get('/admin', function()
{
....some code here
});

我的第二条路线不起作用,因为所有其他路线都试图在PagesController中查找功能。我可以将我的控制器更改为:

Route::controller('pages', 'PagesController');

但是在我的主页上,所有链接都会像www.test.com/pages / ...,但我不需要那些“页面”。如何用面具或类似的东西定义我的控制器?

3 个答案:

答案 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,如果找不到它,那么当它们转到其他路线时...