此路线不支持post方法

时间:2019-04-02 06:33:30

标签: html laravel eloquent

我是laravel的新手,我想提交一个包含三个附件和一些数组的表单

但是当我单击提交按钮时,laravel说

  

“此路由不支持POST方法。受支持的方法:GET,HEAD。”

我进行了很多搜索,但找不到任何错误

我的观点

<div>
    <form action="insertquotation" method="post" enctype="multipart/form-data">
        @csrf
        <table border="1" id="formTable">
            <thead>
            <tr>
                <td>procurment_request_number</td>
                <td>quotationer</td>
                <td>shop_name</td>
                <td>shop_account_number</td>
                <td>shop_permit</td>
                <td>shop_quatation</td>
            </tr>
            </thead>

            <tbody>
            <tr>
                <td>
                    <input type="text" name="procurment_request_number" id="procurment_request_number" value="{{$result->first()->request_number}}">
                    {{--<select name="procurment_request_number[]" id="procurment_request_number">--}}
                        {{--@foreach($result as $results)--}}
                            {{--<option value="{{$results->request_number}}">{{$results->request_number}}</option>--}}
                            {{--@endforeach--}}
                    {{--</select>--}}
                </td>
                <td><input type="text" id="quotationer1" name="quotationer1"></td>
                <td><input type="text" name="shop_name1" id="shop1_name"></td>
                <td><input type="text" name="shop_account_number1" id="shop1_account_number"></td>
                <td><input type="text" name="shop_permit1" id="shop1_permit"></td>
                <td><input type="file" accept="application/pdf" name="shop_quatation1" id="shop_quatation"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="text" id="quotationer" name="quotationer2"></td>
                <td><input type="text" name="shop_name2" id="shop1_name"></td>
                <td><input type="text" name="shop_account_number2" id="shop1_account_number"></td>
                <td><input type="text" name="shop_permit2" id="shop1_permit"></td>
                <td><input type="file" accept="application/pdf" name="shop_quatation2" id="shop_quatation"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="text" id="quotationer" name="quotationer3"></td>
                <td><input type="text" name="shop_name3" id="shop1_name"></td>
                <td><input type="text" name="shop_account_number3" id="shop1_account_number"></td>
                <td><input type="text" name="shop_permit3" id="shop1_permit"></td>
                <td><input type="file" accept="application/pdf" name="shop_quatation3" id="shop_quatation"></td>
            </tr>
                <tr>
                    <td>Item_ID</td>
                    <td>Quantity</td>
                    <td>Unit_ID</td>
                    <td>description</td>
                    <td>Shop1_price</td>
                    <td>Shop2_price</td>
                    <td>Shop3_price</td>
                </tr>
                @foreach($result as $results)
                <tr>
                    <td><input type="text" name="itemid[]" id="itemid" value="{{$results->id}}"></td>
                    <td><input type="text" name="quantity[]" id="quantity" value="{{$results->quantity}}"></td>
                    <td><input type="text" name="units_id[]" id="units_id" value="{{$results->units_id}}"></td>
                    <td><input type="text" name="description[]" id="description" value="{{$results->description}}"></td>
                    <td><input type="text" name="shop1_price[]" id="shop1_price"></td>
                    <td><input type="text" name="shop2_price[]" id="shop2_price"></td>
                    <td><input type="text" name="shop3_price[]" id="shop3_price"></td>
                </tr>
                </tbody>
            @endforeach
        </table>
        {{--<input value="addrow" type="button" id="addrow"  onclick="javascript: addRow();">--}}
        <input type="submit" value="submit">
    </form>
</div>

我的控制器


public function insertquotation(request $request)
{
    if ($file = $request->file('shop1_quatation')) {
        $name = $file->getClientOriginalName();
        $file->move('procurement_files', $name);
        $file2 = $request->file('shop2_quatation');
        $name2 = $file2->getClientOriginalName();
        $file2->move('procurement_files', $name2);
        $file3 = $request->file('shop2_quatation');
        $name3 = $file2->getClientOriginalName();
        $file3->move('procurement_files', $name3);
        $procurment_request_number = $request->input('procurment_request_number');
        $quotationer1 = $request->input('quotationer1');
        $quotationer2 = $request->input('quotationer2');
        $quotationer3 = $request->input('quotationer3');
        $shop_name1 = $request->input('shop_name1');
        $shop_account_number1 = $request->input('shop_account_number1');
        $shop_permit1 = $request->input('shop_permit1');
        $shop_name2 = $request->input('shop_name2');
        $shop_account_number2 = $request->input('shop_account_number2');
        $shop_permit2 = $request->input('shop_permit2');
        $shop_name3 = $request->input('shop_name3');
        $shop_account_number3 = $request->input('shop_account_number3');
        $shop_permit3 = $request->input('shop_permit3');
        $numbers = $request->input('itemid');
        for ($i = 0; $i < count($numbers); $i++) {
            $itemid = $request->input('itemid');
            $shop1_price = $request->input('shop1_price');
            $shop2_price = $request->input('shop2_price');
            $shop3_price = $request->input('shop3_price');
            DB::insert("INSERT INTO procurment_quotations (`procurment_request_number`, `itemid`, `quotationer1`, `quotationer2`, `quotationer3`, `shop1_name`, `shop1_account_number`, `shop1_permit`, `shop1_quatation`, `shop1_price`, `shop2_name`, `shop2_account_number`, `shop2_permit`, `shop2_quatation`, `shop2_price`, `shop3_name`, `shop3_account_number`, `shop3_permit`, `shop3_quatation`, `shop3_price`, `created_at`, `updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,)", [$procurment_request_number, $itemid[$i],$quotationer1,$quotationer2,$quotationer3,$shop_name1,$shop_account_number1,$shop_permit1,$name,$shop1_price,$shop_name2,$shop_account_number2,$shop_permit2,$name2,$shop2_price,$shop_name3,$shop_account_number3,$shop_permit3,$name3,$shop3_price]);
        }
    }
}

和我的路线

Route::Post('insertquotation','Home@insertquotation');

错误是

  

“此路由不支持POST方法。受支持的方法:GET,HEAD。”

3 个答案:

答案 0 :(得分:2)

我认为您应该将action="insertquotation"放入action="{{url('insertquotation')}}"

我可以在您的routes/web.php文件中看到代码吗?您应该在那里声明路线insertquotation

例如:

Route::post('insertquotation', 'YourController@yourMethod');

答案 1 :(得分:2)

更改刀片文件:

<form method="POST" enctype="multipart/form-data" action="{{ route('insertquotation') }}">

在您的 routes / web.php 文件中将Post更改为post

Route::post('insertquotation','Controllername@methodname')->name('insertquotation');

答案 2 :(得分:2)

我需要在您的代码上指出的事情

创建路由时最好使用路由名称,这样当您需要将路由URL更改为其他名称时,只需在路由文件(而不是查看文件)中进行更改

`

现在进入您的视图,您需要这样做

Route::post('insertquotation','Home@insertquotation')->name('insertquotation');

将来,当您希望(也许不希望)将URL更改为<form method="POST" enctype="multipart/form-data" action="{{ route('insertquotation') }}"> ... </form> 时,您要做的就是在路由文件中对其进行更改。

现在,在您的控制器内部,

具有检查文件是否存在/quotation/insert的功能,该函数更正确地在if条件下使用,而不是在文件中传递。

此外,最好使用Laravel雄辩的将数据插入数据库中。 Learn more here