无论在url中输入什么,Laravel 4资源控制器都会显示单个页面


Laravel 4 Resource Controller shows single page no matter what typed in the url

我已经使用jefferyway的laravel4生成器作为播放器设置了一个资源控制器。所以当我进入url/players/show它会显示show。blade。php。这是正确的。但是当我转到/players/{我可以传递的任何名称字段}时,它会转到show。blade。php。没有抛出httpnotfoundexception或任何错误。

这些是应用程序的控制器和路由文件。

http://paste.laravel.com/qwp
http://paste.laravel.com/qwq

应该是这样的。
第45行show方法处理对/players/{anything}的GET请求。


Jeffery Way在Laravel 4上有一个非常好的视频系列,他详细解释了这一点:

Resourceful Controllers: Part 1
Resourceful Controllers: Part 2

当你注册一个资源控制器时,它会为你创建这些路由:

GET /players                                                    players.index            PlayerController@index                       
GET /players/create                                             players.create           PlayerController@create                      
POST /players                                                   players.store            PlayerController@store                       
GET /players/{players}                                          players.show             PlayerController@show                        
GET /players/{players}/edit                                     players.edit             PlayerController@edit                        
PUT /players/{players}                                          players.update           PlayerController@update                      
PATCH /players/{players}                                                                 PlayerController@update                      
DELETE /players/{players}                                       players.destroy          PlayerController@destroy 

你可以这样设置这个列表:

你现在可以看到球员。Show will handle/players/*

使用示例:

Route::group(array('before' => 'auth'), function()
{
    Route::get('/', function()
    {
        // Has Auth Filter
    });
    Route::get('user/profile', function()
    {
        // Has Auth Filter
    });
});