在laravel 5.2中更新表单中的数据时出错

时间:2016-03-29 03:05:38

标签: php laravel-5.2

我想使用此表单更新我的数据,但是我收到错误:

The webform  我的控制器:

public function update($id)
{
    $dosenUpdate = Request::all();
    $dosen = Dosen::find($id);
    $dosen->update($dosenUpdate);
    return redirect('dosen')->with('message', 'Data berhasil dirubah!');
}

public function status()
{
    $dosen = \App\Dosen::paginate(5);
    return view('dosen.status', compact('dosen'));
}

我的路线:

Route::get('/dosen/status', 'DosenController@status');

我的观点:

{!! Form::model($dosen, ['route' => ['dosen.update', $dosen->id] !!}
 {!! Form::hidden('_method', 'PUT') !!}
 {!! Form::select('status', array('1' => 'Ready', '0' => 'Not Ready'), null, ['placeholder' => 'Pilih Status'], ['class' => 'form-control'], ['placeholder' => 'Pilih Status']) !!}
 {{ Form::button('<i class="fa fa-check-square-o"></i> Save', ['type' => 'submit', 'class' => 'btn btn-primary'] )  }}
{!! Form::close() !!}

错误回复:

Undefined property: Illuminate\Pagination\LengthAwarePaginator::$id (View:       
D:\XAMPP\htdocs\infodosen\resources\views\dosen\status.blade.php)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你是从一组对象(LengthAwarePaginator)获取属性的三重奏。

要在视图中获取模型Dosen的ID,您必须迭代集合。

这样的事情:

@foreach($dosen as $d)
  {!! Form::model($d, ['route' => ['dosen.update', $d->id] !!}
    {!! Form::hidden('_method', 'PUT') !!}
    {!! Form::select('status', array('1' => 'Ready', '0' => 'Not Ready'), null, ['placeholder' => 'Pilih Status'], ['class' => 'form-control'], ['placeholder' => 'Pilih Status']) !!}
    {{ Form::button('<i class="fa fa-check-square-o"></i> Save', ['type' => 'submit', 'class' => 'btn btn-primary'] )  }}
  {!! Form::close() !!}
@endforeach

如果出现TokenMismatch错误,请务必在Route组中包含名为“web”的中间件。

例如:

Route::group(['middleware' => ['web']], function () {
//put your routes here
}

这也会考虑在您的视图中未设置$ error变量的错误