提问者:小点点

请求不起作用,Laravel 4


几天前,PUT请求对我来说运行良好,但现在它们继续返回MethodNotAllowedHttpException。

我遵循这个指南:http://scotch.io/tutorials/simple-laravel-crud-with-resource-controllers.

我的创建和索引工作正常,但是当我尝试更新记录时,它会给我带来错误消息。此外,如果我将方法从PUT更改为POST,它将开始添加记录。

类型

      {{ Form::open(array('route' => array('timesheet.update', $timesheet->id), 'method' => 'PUT')) }}
       {{ Form::label('companyName', 'Company Name') }}
       {{ Form::text('companyName', $timesheet['companyName']) }}

       {{ Form::label('placement', 'Placement') }}
       {{ Form::text('placement',  $timesheet['placement']) }}

       {{ Form::label('startDate', 'Start Date') }}
       {{ Form::text('startDate', $timesheet['startDate']) }}

       {{ Form::label('endDate', 'End Date ') }}
       {{ Form::text('endDate', $timesheet['endDate']) }}

        {{ Form::label('weekending', 'weekending') }}
        {{ Form::text('weekending', $timesheet['weekending']) }}

       {{ Form::label('status', 'status') }}
       {{ Form::text('status', $timesheet['status']) }}




       {{ Form::submit('Edit Timesheet') }}

  {{ Form::close() }}

控制器

    public function update($id)
    {
    $timesheet = Timesheet::find($id);
    $timesheet->companyName = Input::get('companyName');
    $timesheet->placement = Input::get('placement');
    $timesheet->startDate = Input::get('startDate');
    $timesheet->endDate = Input::get('endDate');
    $timesheet->weekending = Input::get('weekending');
    $timesheet->status = Input::get('status');
    $timesheet->save();

    return Redirect::to('timesheet');
   }

路线

Route::resource('timesheet', 'TimesheetController');

共1个答案

匿名用户

错误是您没有传递资源所需的url

尝试{{窗体::打开(数组('url'=

{{ Form::open(array('url'=>'timesheet/'$timesheet->id , 'method' => 'PUT')) }}

所需格式为PUT/PATCH/timesheet/{id}update timesheet。更新

只需在你的控制器date()中使用echo$id;退出来检查root是否正常...

对我有用:-)希望对你有帮助。。。