Laravel抛出方法NotAllowedHttpException错误

Laravel抛出方法NotAllowedHttpException错误,laravel,Laravel,单击“发送电子邮件和发送短信”按钮时遇到问题的客户页面的My Routes.php文件 Route::get('/customer', 'CustomerController@showCustomers'); Route::get('/customer/add', 'CustomerController@addNewCustomer'); Route::post('/customer/add', 'CustomerController@insertCustomer'); Route::get

单击“发送电子邮件和发送短信”按钮时遇到问题的客户页面的My Routes.php文件

  Route::get('/customer', 'CustomerController@showCustomers');
Route::get('/customer/add', 'CustomerController@addNewCustomer');
Route::post('/customer/add', 'CustomerController@insertCustomer');
Route::get('/customer/delete/{id}', 'CustomerController@deleteCustomer');
Route::get('/customer/edit', 'CustomerController@editCustomer');
Route::post('/customer/edit', 'CustomerController@updateCustomer');
Route::get('/search-customers', 'CustomerController@searchCustomers');
Route::post('/customer/set_type', 'CustomerController@setType');
Route::get('/customer/send_sms', 'CustomerController@sendNotification');
Route::get('/customer/send_email', 'CustomerController@sendEmail');
Customer.blade文件

    <?php
include(app_path().'/includes/reports.php');
?>
@extends('layouts.dashboard')
@section('page_heading','Customers')
@section('section')
<style type="text/css">
    #customer_table_filter {
        display: none;
    }
</style>

<div class="col-sm-12">
    <div class="row">
        <div class="col-lg-3 col-md-6">
                    <div class="panel panel-primary">
                        <div class="panel-heading">
                            <div class="row">
                                <div class="col-xs-3">
                                    <i class="fa fa-users fa-5x"></i>
                                </div>
                                <div class="col-xs-9 text-right">
                                    <div class="huge"><?php echo $rowcount ?></div>
                                    <div>Total Customers</div>
                                </div>
                            </div>
                        </div>
                    </div>
        </div>


    </div>
</div></div>
<hr>

<form role="form" id="search_form" class="" action="{{ url('search-customers')}}" method="get">
<!-- <input type="hidden" name="_token" value="{{ csrf_token() }}"> -->

<div class="col-sm-3">
    <div class="input-group custom-search-form">
            <input type="text" class="form-control" id="customer_search" name="first_name" placeholder="Search Customers by name...">
            <span class="input-group-btn">
            <button class="btn btn-default" type="submit">
                    <i class="fa fa-search"></i>
            </button>
        </span>
    </div>
</div>

<div class="col-sm-3">
    <div class="input-group custom-search-form">
            <input type="text" class="form-control" id="mobile_number" name="mobile_number" placeholder="Search Customers by phone...">
            <span class="input-group-btn">
            <button class="btn btn-default" type="submit">
                    <i class="fa fa-search"></i>
            </button>
    </span>
    </div>
</div>
<br><br><br>
<div class="col-sm-3">
    <div class="input-group custom-search-form">
            <input type="text" class="form-control" id="branch" name="branch" placeholder="Search Customers by branch...">
            <span class="input-group-btn">
            <button class="btn btn-default" type="submit">
                    <i class="fa fa-search"></i>
            </button>
        </span>
    </div>
</div>

<div class="col-sm-3">
    <div class="input-group custom-search-form">
            <input type="text" class="form-control" id="customer_type" name="customer_type" placeholder="Search Customers by type...">
            <span class="input-group-btn">
            <button class="btn btn-default" type="submit">
                    <i class="fa fa-search"></i>
            </button>
    </span>
    </div>
</div>

        <input class="btn btn-primary" name="submit" type="submit" value="Search"/><br><br>
</form>

<div class="col-sm-12">
<div class="row">


    <!-- <form action="{{ url('customer/set_type')}}" class="" id="customer_set_type" method="post" role="form" /> -->

    <form action="" class="" id="customer_set_type" method="post" role="form" />

    <div style="position: absolute;top: -95px;right: 0;">
        <a class="btn btn-primary" href="{{ url('/customer/add') }}">Add new Customer</a>
        <input formaction="{{ url('customer/print_list')}}" class="btn btn-primary" name="print_data" type="submit" value="Print Data"/>
    </div><br><br><br>

    <div style="position: absolute;right: 0;margin-top: -105px;z-index: 999999;">
    <input name="_token" type="hidden" value="{{ csrf_token() }}">
    <input formaction="{{ url('customer/set_type')}}" class="btn btn-primary" name="mark_as_loyal" type="submit" value="Mark As Loyal Customers"/>
    <input formaction="{{ url('customer/set_type')}}" class="btn btn-primary" name="mark_as_regular" type="submit" value="Mark As Regular Customers"/><br><br>
    </div>

@if (Session::has('succMessage'))
   <div class="alert alert-success" style="position: absolute;margin-top: -50px;">{{ Session::get('succMessage') }}</div>
   @elseif (Session::has('errMessage'))
   <div class="alert alert-danger" style="position: absolute;margin-top: -50px;">{{ Session::get('errMessage') }}</div>
@endif

        @section ('cotable_panel_title','Customer List')
    <div class="col-sm-12">
        @section ('cotable_panel_body')

<!-- <div id="control-panel" onclick="cbclick(event)">
            <label><input type="checkbox" name="checkbox" id="checkbox-filter1"> Loyal Customers</label>&nbsp;&nbsp;
            <label><input type="checkbox" name="checkbox" id="checkbox-filter2"> Regular Customers</label>
</div> -->

        <table class="table table-hover table-striped table-bordered" id="customer_table">
            <thead>
                <tr>
                    <th><input type="checkbox" name="checkAll" id="checkAll"></th>
                    <th>Sr. No.</th>
                    <th>Name</th>
                    <th>Email</th>
                    <th>Address</th>
                    <th>Phone</th>
                    <th>Type</th>
                    <th>Total Orders</th>
                    <th><a href="{{ $purchase_sort }}" class="ui-btn ui-icon-refresh ui-btn-icon-left">Total Amount Purchased</a></th>
                    <th>Branch</th>
                    <th>Actions</th>
                </tr>
            </thead>
                <?php
$i = 1;
?>
            <tbody>
                <tr>
            @foreach ($customers as $key=>$customer)
                    <td><input type="checkbox" name="customer_details[]" class="checkItem" value="{{$customer->id}}|{{$customer->first_name}}|{{$customer->email}}|{{$customer->mobile_number}}|{{$customer->address}}"></td>
                    <td><?php echo $key + 1;?></td>
                    <td><a href="{{ URL::to('customer/edit?id='  . $customer->id) }}">{{ $customer->first_name }}</a></td>
                    <td style ="word-break:break-all;">{{ $customer->email }}</td>
                    <td style ="word-break:break-all;"><?php if (strlen($customer->address) > 25) {
    echo $customer->address = substr($customer->address, 0, 25) . "...";
}
?>
                    </td>
                    <td>{{ $customer->mobile_number }}</td>
                    <td>{{ ($customer->customer_type != "null") ? $customer->customer_type : "-" }}</td>
                    <td>{{ $customer->total_orders }}</td>
                    <td>{{ $customer->total_purchased_amount }}</td>
                    <td>{{ $customer->branch }}</td>
                    <td class="customer-list-actions">
                    <a class="btn btn-primary edit-btn-lime-green" href="{{ URL::to('customer/edit?id='  . $customer->id) }}"><i class="fa fa-edit"></i></a>
                    @if(Auth::user()->hasRole('owner'))
                    <a class="btn btn-primary" href="{{ URL::to('customer/purchase/purchase?customer_id=    '  . $customer->id) }}"><i class="fa fa-shopping-cart"></i></a>
                    <a class="btn btn-danger delete-btn-vivid-red" onclick="return confirm('Are you sure you want to delete this record?')" href="{{ URL::to('customer/delete/delete?delete_customer=   '  . $customer->id) }}"><i class="fa fa-trash-o"></i></a>
                    @endif
                    </td>
                </tr>
        <?php $i++;?>
            @endforeach
            </tbody>
        </table>
            <div style="position: absolute;right: 50px;">
                <input class="btn btn-primary" name="send_sms" type="submit" value="Send SMS"/>
                <input class="btn btn-primary" name="send_email" type="submit" value="Send Email"/><br><br>
            </div>
        <?php
            echo $customers->render();
        ?>

            <div style="position: absolute;right: 50px;">
                <input class="btn btn-primary" name="send_sms_to_all" type="submit" value="Send SMS to all customers"/>
                <input class="btn btn-primary" name="send_email_to_all" type="submit" value="Send Email to all customers"/><br><br>
                </div><br/><br/><br/><br/>
        @endsection
        @include('widgets.panel', array('header'=>true, 'as'=>'cotable'))
        </div>
    </div>
</div>
</form>
<script type="text/javascript">
$(".send_noti").click(function(e) {
    if (!$('input:checkbox').is(':checked')) {
        alert("Please select atleast one customer to send notification!");
        e.preventDefault();
        };

$("#checkAll").click(function() {
    $('input:checkbox').not(this).prop('checked', this.checked);
});

$('form#search_form').submit(function() {

    var input1 = $.trim($('#customer_search').val());
    var input2 = $.trim($('#mobile_number').val());
    var input3 = $.trim($('#branch').val());
    var input4 = $.trim($('#customer_type').val());

    if (input1 === '' && input2 === '' && input3 === '' && input4 === '') {
        alert('Please enter your search query!');
        return false;
    }
});

</script>
@stop

如果要在单击时发送电子邮件,请更改此选项:

<form action="" class="" id="customer_set_type" method="post" role="form" />

如果您想同时发送短信和电子邮件,您需要创建两个表单或在代码中添加一些标志。

您的表单使用
POST
方法设置,而路由为
GET

还请注意,所有按钮都类似于提交到同一位置。也许最好使用JavaScript发送此请求

首先:下次只发布相关代码。不要把你所有的东西都贴出来 源代码相当混乱

MethodNotAllowedHttpException表示您正在向GET路由发送帖子,反之亦然

这些路由需要“POST”请求,如果它们收到GET请求,则将抛出MethodNotAllowedHttpException:

Route::get('/customer/send_sms', 'CustomerController@sendNotification');
Route::get('/customer/send_email', 'CustomerController@sendEmail');
通过单击下面的“提交按钮”type=Submit向服务器发送post请求

<input class="btn btn-primary" name="send_sms" type="submit" value="Send SMS"/>
<input class="btn btn-primary" name="send_email" type="submit" value="Send Email"/>
将表单操作指向正确的路由URL

<form action="/customer/send_email" id="customer_set_type" method="post" role="form" />


下次不要粘贴所有代码,只粘贴相关代码,因为现在很难找到正确的部分。这可能是因为您试图在get路线上发布的路线错误,或者是因为您的from操作和路线不匹配。如果您的表单操作是get,路由将是route::get,如果您的表单操作是post,那么您的路由将是route::postChecked,在您的代码中,这里是表单操作empty@Jessedegans下次我会确定的。所以很抱歉,非常感谢你指出它对我很有吸引力。谢谢你的回复,它确实帮助了我。但上述评论的重点要突出得多,我认为这一点是正确的。谢谢
Route::get('/customer/send_sms', 'CustomerController@sendNotification');
Route::get('/customer/send_email', 'CustomerController@sendEmail');
Route::get('/customer/send_sms', 'CustomerController@sendNotification');
Route::get('/customer/send_email', 'CustomerController@sendEmail');
<input class="btn btn-primary" name="send_sms" type="submit" value="Send SMS"/>
<input class="btn btn-primary" name="send_email" type="submit" value="Send Email"/>
Route::post('/customer/send_sms', 'CustomerController@sendNotification');
Route::post('/customer/send_email', 'CustomerController@sendEmail');
<form action="/customer/send_email" id="customer_set_type" method="post" role="form" />