在分组路由中使用Laravel资源控制器更新方法时出错

时间:2013-11-27 18:09:59

标签: api rest laravel-4

我有一个Laravel应用程序,我用它来创建RESTful API。

使用分组路由时,我的资源控制器中的编辑/更新方法存在一些问题。

当我删除路径分组时,控制器按预期工作。

我的路线如下:

Route::group(array('prefix' => 'api/v1'), function()
{ 
    Route::resource('/trip', 'TripController');
});

因此,使用此我的RESTFul端点应如下所示:

GET /api/v1/trip/{resource}

GET /api/v1/trip/{resource}/edit

PUT /api/v1/trip/update/{resource}

GET /api/v1/trip/create

POST /api/v1/trip/store/{resource}

修改更新端点外的所有工作。

当我点击 / api / v1 / trip / {resource} / edit 时出现以下错误

Unable to generate a URL for the named route "trip.update" as such route does not exist.

我的控制器编辑方法只是一种快速的测试形式。它看起来像:

public function edit($id)
{
  $oTrip = new Trip;
  $oTrip = $oTrip->find($id);

  echo Form::model($oTrip, array(
    'route' => array('trip.update', $oTrip->id),
    'method' => 'PUT'
    ));
  echo Form::text('headline');
  echo Form::text('description');
  echo Form::submit('Click Me!');
  echo Form::close();
}

Laravel似乎无法在分组路线中找到 trip.update 。 我认为群组前缀 api / v1

存在问题

当我将组代码注释掉时只读:

Route::resource('/trip', 'TripController');

...并且在没有 api / v1 前缀的情况下访问uri就像 / trip / {resource} / edit 一样,一切正常。

有什么我想念的吗? 我真的希望使用分组和 api / v1 前缀。

0 个答案:

没有答案