这是我的路线:
Route::get('admin/edit-news/{id}', 'AdminNewsController@edit');
我的Controller @ update方法:
public function update(Request $request, $id)
{
$news = News::find($id);
$news->title = $request->input('title');
$news->content = $request->input('content');
$news->save();
return redirect ('/admin');
}
以及我使用自定义表单的视图:
{{ Form::open(['action' => ['AdminNewsController@update', $news->id], 'method' => 'POST']) }}
{{ Form::bsText('title', $news->title) }}
{{ Form::bsTextArea('content', $news->content) }}
{{ Form::hidden('_method', 'PUT') }}
{{ Form::bsSubmit('Confirm', ['class' => 'btn btn-primary center-block']) }}
{!! Form::close() !!}
我得到的错误是
“未定义Action App \ Http \ Controllers \ AdminNewsController @ update。(查看:D:\ xampp \ htdocs \ laravelhotel \ resources \ views \ admin \ news \ edit_news.blade.php)“
我不知道为什么,因为我执行的操作是更新功能,并且所有组件都已在FormServiceProvider中注册。
答案 0 :(得分:0)
如果您使用由POST表单方法和_method
字段({{ Form::hidden('_method', 'PUT') }}
)模拟的PUT方法,则需要使用相应的路由:
Route::put('admin/edit-news/submit', 'AdminNewsController@update');
// ^^^