Вас отправляют на неправильный URI.
Измените тег form
на этот:
<form action="" method="POST">
Это будет гарантировать, что вас отправляют по тому же маршруту вы в настоящее время включены, но с методом POST вместо метода GET.
Ваши маршруты должны выглядеть следующим образом:
Route::get('post/{post}', 'PostController@show'); // For viewing
Route::post('post/{post}', 'PostController@update'); // For updating
Исправьте метод контроллера update
для работы с параметры через привязку модели :
public function update(Request $request, Post $post)
{
$user = request('user_id');
$task = request('task_id');
//Fill Post User
$selectedtask = Posts::findOrFail($task);
$selectedtask->update(['user', $user]);
//Success
Session::flash('success', 'You picked up a new task.');
return view('/');
}
Я также предполагаю, что вы смешиваете task_id
с идентификатором модели поста, так как вы выбираете пост через эта переменная запроса? Используя привязку модели и доступ к пользователю через объект Request, вы можете свести ваш метод контроллера к следующему:
public function update(Request $request, Post $post)
{
$post->update(['user' => $request->user()->id]);
return redirect('/')->with('success', 'You picked up a new task.');
}
Привязка модели автоматически вернет 404, если не существует.