2 回答

TA贡献1848条经验 获得超2个赞
尝试移动
Route::POST('update', 'PostController@update');
到 web.php 文件的顶部,然后清除路由缓存,更改代码
<form action="/update" method="POST">
(在更新前添加斜杠)并尝试您的代码

TA贡献1794条经验 获得超8个赞
您被发送到错误的 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_idPost 模型的 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。
- 2 回答
- 0 关注
- 92 浏览
添加回答
举报