为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中通过单击按钮将用户 ID 添加到帖子中会出现错误消息“不支持发布方法”

在 Laravel 中通过单击按钮将用户 ID 添加到帖子中会出现错误消息“不支持发布方法”

PHP
德玛西亚99 2022-12-30 16:05:00
在这个应用程序中,我有一个用户表和一个帖子表。在个人帖子刀片 (post/{id}) 中,我有一个名为“Pick Up Task”的按钮。单击时,它应该将 $post->user 设置为当前用户的 ID。我已经按照当前文档设置了所有内容,但它仍然给我错误:“此路由不支持 POST 方法。支持的方法:GET、HEAD。”这是我的代码:立柱刀片中的按钮<form action="update" method="POST">                @csrf                <input type="hidden" name="user_id" value="{{Auth::user()->id}}"/>                <input type="hidden" name="task_id" value="{{ $task->id }}"/>                <button class="btn btn-outline-secondary" type="submit" value= "UPDATE" href="#">➕ Pick up Task</button>                </form>后控制器中的函数// ADD USER TO TASKpublic function update() {    $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('/');}我的路线 (web.php)//Add user as assigneeRoute::POST('update', 'PostController@update');
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

尝试移动

Route::POST('update', 'PostController@update');

到 web.php 文件的顶部,然后清除路由缓存,更改代码

<form action="/update" method="POST">

(在更新前添加斜杠)并尝试您的代码


查看完整回答
反对 回复 2022-12-30
?
慕田峪9158850

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。


查看完整回答
反对 回复 2022-12-30
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号