在 laravel 6 中以 post 方法发送表单数据给出错误,因为该路由不支持 POST 方法。支持的方法:GET、HEAD
Posted
技术标签:
【中文标题】在 laravel 6 中以 post 方法发送表单数据给出错误,因为该路由不支持 POST 方法。支持的方法:GET、HEAD【英文标题】:In laravel 6 sending form data in post method giving error as The POST method is not supported for this route. Supported methods: GET, HEAD 【发布时间】:2020-01-27 22:01:00 【问题描述】:我试图将整个表单数据作为 post 方法存储到 post 方法中的路由中,给出如下错误
此路由不支持 POST 方法。支持的方法:GET、HEAD。
请看下面的代码
web.php
Route::get('/purchase/index','PurchasesController@index')->name('purchase.index');
Route::get('/purchase/create','PurchasesController@create')->name('purchase.create');
Route::post('/purchase/store','PurchasesController@store')->name('purchase.store');
create.blade.php
@extends('layouts.nav') @section('content')
<div class="container mt-3 border ">
<div class="row justify-content-center align-items-center" style="background-color:teal;color:#fff;">
<h1> Purchase Details</h1>
</div>
!!Form::open(['route'=>['purchase.store'],'id'=>'purchase_form','method'=>'POST'])!!
<div class="container">
<div class="row float-left m-3">
-- !!Form::open(['route'=>['purchase.store'],'id'=>'purchase_form','method'=>'POST'])!! --
<form>
Date:
<input type="date" date-format="mm-dd-yyyy" placeholder="MM-DD-YYYY" name="date" id="datePicker">
</form>
</div>
<!-- <div class="col-sm-4 pull-right " style="margin-top:5px;margin-bottom:5px;">-->
<div class="row justify-content-center float-right m-3">
<button type="button" class="btn btn-info add-new" id="addnew"><i class="fa fa-plus"></i> Add New</button>
</div>
</div>
<div class="container mt-3">
<form method="POST" action=" ">
<table class="table table-bordered" id="tb2">
<thead class="text-center">
<tr class="tr-header">
<th>CI No</th>
<th>ItemName</th>
<th>Unit</th>
<th>Price</th>
<th>SubTotal</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<tr>
<td class="clid"></td>
<td>
<input type="text" class="form-control name" name="name" id="inputGroupSelect01">
</td>
<td>
<input type="text" class="form-control qty" name="qty" id="qty">
</td>
<td>
<input type="text" class="form-control rate" name="rate" id="rate">
</td>
<td>
<input type="text" class="form-control subTotal" name="subTotal" id="subTotal">
</td>
<td> <a class="delete" title="Delete" data-toggle="tooltip"><i class="material-icons"></i></a> </td>
</tr>
</tbody>
</table>
</div>
<div class="float-right m-3">
-- !!Form::submit('Submit');!! --
<form method="POST" action="/purchase/store">
<button type="submit" name="edit" class="btn btn-primary ">Submit</button>
</form>
</div>
<div class=" float-right m-3">
<h5><b>Grand Total</b></h5>
<input type="text-box" class="grandTotal" maxlength="10" size="10">
</div>
</div>
</div>
!!Form::close()!! @stop
PurchasesController.php
public function store(Request $request)
//
return "i have entered store";
【问题讨论】:
你的表单代码都乱了。您在另一个表单中有三个表单,其中一个表单没有操作<form method="POST" action=" ">
,因此它将发布到您所在的页面。修正你的表格,你就会解决你的问题。
请通过表单方法 post 和 CSRF 令牌将您的数据发布到控制器中。
您在 CMD 中编写运行命令。 php artisan route:list 所以你还可以获得 6 种方法来存储更新 fetch..like..所以你也可以从这个命令中获取你的路由。
【参考方案1】:
尝试使用
<form method="POST" action="url(purchase/store)">
并确保您没有使用前缀组
【讨论】:
以上是关于在 laravel 6 中以 post 方法发送表单数据给出错误,因为该路由不支持 POST 方法。支持的方法:GET、HEAD的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.1 AJAX - 即使我发送 POST 请求,也不允许返回 405 GET 方法