Laravel集体定制表单,未定义动作Controller @ update

时间:2018-11-21 20:45:48

标签: forms laravel-5.7 laravelcollective

这是我的路线:

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中注册。

1 个答案:

答案 0 :(得分:0)

如果您使用由POST表单方法和_method字段({{ Form::hidden('_method', 'PUT') }})模拟的PUT方法,则需要使用相应的路由:

Route::put('admin/edit-news/submit', 'AdminNewsController@update'); 
//     ^^^