Обнаружена ошибка 302 Найдено при попытке обновления с использованием метода post в маршруте.
Маршрут
Route::post('update_article/{id}', 'ArticleController@update_article')->name('articles.update');
Клинок формы редактирования
{!! Form::model($article, ['route'=>['articles.update', $article->id], 'method' => 'post', 'class' => 'form-horizontal form-stripe']) !!}
Контроллер
public function update_article(Request $request, $id)
{
$data = Article::find($id);
$url = $this->url->to('/');
$data->image = $request->input('image');
$data->title = $request->input('title');
$data->description = $request->input('description');
$data->user_id = Auth::id();
$data->status = $request->input('status');
if ($request->hasFile('image'))
{
$f_imageName = time().'.'.request()->image->getClientOriginalExtension();
request()->image->move(public_path('uploads/articles'), $f_imageName);
$data->image =$url.'/public/uploads/articles/'.$f_imageName;
}
else
{
$data->image = $request->input('image_hidden');
}
$data->save();
Session::flash('success', 'articles has been updated');
return redirect()->route('articles.index');
}
Использование POST для обновления вместо PUT, поскольку я использую summernote. Когда я использую PUT, большой description обрезается. В летней заметке говорится, что это может произойти, если я не использую метод POST.
И есть также маршрут по умолчанию непосредственно перед маршрутом update_article для ресурсов статей как:
Route::resource('articles', 'ArticleController');
Примечание: csrf token отправляется как параметры _token в пост-операции. Пока не могу найти решение. Что мне не хватает?





Если вы создали ресурс, как упомянули.
Route::resource('articles', 'ArticleController');
затем удалите следующий код из вашего маршрута web.php и запустите код.
Route::post('update_article/{id}', 'ArticleController@update_article')->name('articles.update');
любое предложение ?
Вы отправляете форму с помощью ajax? если да, проверьте данные формы в консоли. Я думаю, что поле описания пустое. laravel не усекает.
нет, я использую обычную форму отправки, и поле описания не пустое, оно имеет текстовое значение.
решил это, изменив структуру db и следуя вашему предложению, спасибо
Отлично :)
Наконец, я изменил структуру БД на тип text с varchar, и длинное описание не усекается с использованием метода PUT вместо POST в операции обновления. Итак, вернемся к маршрутизации по умолчанию с использованием метода PUT в форме submit-
Маршрут:
Route::resource('articles', 'ArticleController');
Теперь все работает как положено.
в этом случае операция обновления не позволяет использовать метод
post, говорится в сообщенииHttpMethodException, в этом случае разрешается только установка или исправление. Как я уже упоминал, я не могу использоватьPUT, так как он усек поле описания в летней заметке, мне нужно использоватьPOST. Для маршрута ресурса по умолчанию здесь должен быть указан методput.