Коллективные пользовательские формы Laravel, действие Controller @ update не определено - PullRequest
0 голосов
/ 21 ноября 2018

Это мой маршрут:

Route::get('admin/edit-news/{id}', 'AdminNewsController@edit');

Мой контроллер @ метод обновления:

 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 @ не определено. (Представление: D: \ xampp \ htdocs \ laravelhotel \ resources \ views \ admin \ news \ edit_news.blade.php)"

Я не знаю почему, так как действие, которое я ставлю, является функцией обновления, и у меня есть все компоненты, зарегистрированные в FormServiceProvider.

1 Ответ

0 голосов
/ 22 ноября 2018

Если вы используете метод PUT, который моделируется методом POST и полем _method ({{ Form::hidden('_method', 'PUT') }}), вам необходимо использовать соответствующий маршрут:

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