【问题标题】:Redirecting To Controller Actions with POST method in laravel 6在 laravel 6 中使用 POST 方法重定向到控制器操作
【发布时间】:2020-11-10 09:01:48
【问题描述】:

我在 UserController 中有一个名为 destroy 的操作,我不想执行此操作而不是 UserInfoController@destroy 应该运行。所以我需要重定向到UserInfoControlle@destroy控制器。

UserController@destroy 操作;

return redirect()->action(
                    'UserInfoController@destroy',['id' => 1]
                );

操作成功运行,但出现此错误;

The GET method is not supported for this route. Supported methods: POST.

【问题讨论】:

  • 重定向原因get请求
  • 请展示您的路线实现
  • @ml59 Route::post('/delete/{id}''UserInfoController@destroy')->name('delete');
  • @lagbox 那么我可以使用 get 获取UserInfoController@destroy 路由吗?
  • 是的,如果你想重定向。浏览器无法重定向到post路由

标签: laravel laravel-6 laravel-controller


【解决方案1】:

你有一些方法可以做到这一点,如下所示:

  1. 为此创建新的get 路由

    Route::get('/delete/{id}','UserInfoController@destroy')->name('deleteWithGetMethod');
    
  2. 在您的路线中将post 更改为any

    Route::any('/delete/{id}','UserInfoController@destroy')->name('delete');
    
  3. 返回包含以下代码的视图

    <form id="myForm" action="{{ route('delete',$userInfoId) }}" method="post">
    </form>
    <script type="text/javascript">
        document.getElementById('myForm').submit();
    </script>
    

【讨论】:

  • 看起来这是最好的解决方案,现在,我将在我的路线中使用any。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 2013-06-20
  • 1970-01-01
  • 2014-12-31
  • 2021-11-21
  • 2014-06-20
  • 1970-01-01
相关资源
最近更新 更多