2014-09-23 79 views
0

我想弄清楚是否有一种方法将URL参数添加到Route :: controller调用。Laravel路线::控制器与额外的参数

我有什么,此刻我的控制面板:

Route::group(
    [ 
     'prefix' => 'admin', 
     'namespace' => 'Admin' 
    ], 
    function() { 

     Route::group(
      [ 
       'prefix' => '', 
       'before' => 'auth.admin' 
      ], 
      function() { 

       Route::controller('page', 'PageController'); 

       Route::controller('article', 'ArticleController'); 

      } 

     ); 

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

    } 
); 

现在 - 每个控制器将有柱/ getEdit行动,这将需要的URL id参数在传递过简单的格式/admin/page/edit/{id}

我的问题是 - 有没有办法可能将一些参数添加到Route :: controller方法,还是我必须使用Route::get/Route::post方法来完成这些操作?

我知道我可以通过增加两个额外例getpost给定的控制器调用上面做到这一点:

Route::group(
    [ 
     'prefix' => 'admin', 
     'namespace' => 'Admin' 
    ], 
    function() { 

     Route::group(
      [ 
       'prefix' => '', 
       'before' => 'auth.admin' 
      ], 
      function() { 

       Route::get('page/edit/{id}', '[email protected]'); 
       Route::post('page/edit/{id}', '[email protected]'); 

       Route::controller('page', 'PageController'); 

       Route::controller('article', 'ArticleController'); 

      } 

     ); 

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

    } 
); 

但也许还有更好的方法吗?


回答

1

您可以使用Route::resource

Route::resource('resource', 'ResourceController'); 

这将注册以下途径:

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

您可以onlyexcept一起用它来选择要包括哪些途径(或排除):

Route::resource('resource', 'ResourceController', ['only' => ['index', 'show', 'update', 'destroy']]); 

了解更多关于Laravel documentation中宁静资源控制器的信息。

这个职位也可能是有趣:Laravel 4 - Route::resource vs Route::controller. Which to use?

+0

所以我拿 - 'resource'将被用来传递给定记录的'id'。谢谢。 – 2014-09-23 09:24:17

+0

是的,'{resource}'是记录的标识符并传递给控制器​​。 – 2014-09-23 09:28:26