Исключение MethodNotAllowedHttpException в laravel-5.6

avatar
Rashed Hasan
8 апреля 2018 в 11:32
1925
2
2

Я пытаюсь отправить форму методом 'POSt', но получаю MethodNotAllowedHttpException. Я знаю возможную причину появления этой ошибки, а также искал в Интернете возможное решение. Все остальные формы моего проекта работают нормально, кроме этой. Я не нахожу причину, по которой я получаю эту распространенную ошибку. Кто-нибудь поможет мне найти решение?

форма

<form action="{{ url('admin/checkout') }}" method="POST">
     @csrf
   <div class="row">
        <div class="col-sm-6 offset-sm-3">
           <label class="m-t-20">Now time</label>
           <div class="input-group">
                <input name="outtime" class="form-control" id="single-input" value="" placeholder="Now" required>
                 <span class="input-group-btn">
                    <button type="submit" id="check-minutes" class="btn waves-effect waves-light btn-warning">Check Out</button>
                 </span>

               @if ($errors->has('outtime'))
                  <small class="error">{{ $errors->first('outtime') }}</small>
               @endif
           </div>
        </div>
    </div>
  <br>
  <table id="flow-table" class="display nowrap mytable" cellspacing="0" width="100%">
    <thead>
       <tr>
          <th style="width: 15px;">#</th>
          <th class="check">
              <div class="checkbox">
                  <label>
                     <input type="checkbox" id="flowcheckall" />
                     <i class="input-helper"></i>
                     <span><strong> All</strong></span>
                  </label>
               </div>
           </th>
           <th class="text-left">Name</th>
           <th>Cord No</th>
           <th>Section</th>
           <th>Designation</th>
         </tr>
       </thead>
       <tbody>
          @forelse($employees as $employee)
           <tr class="text-center">
               <td>{{ $loop->index + 1 }}</td>
               <td style="max-width: 30px;">
                   <div class="checkbox text-center">
                        <label>
                          <input type="checkbox" name="employee_id[]" class="check" id="checkall" value="{{ $employee->employee_id }}" />
                                <i class="input-helper"></i>
                        </label>
                    </div>
                </td>
                 <td class="text-left">{{ $employee->name }}</td>
                 <td>{{ $employee->card_no }}</td>
                 <td>{{ ucwords($employee->section) }}</td>
                 <td>{{ ucwords($employee->designation) }}</td>
           </tr>
           @empty

           @endforelse

       </tbody>
  </table>
</form>

web.php

#Admin Routes

Route::get('admin', 'Admin\LoginController@showLoginForm')->name('admin.login');
Route::post('admin', 'Admin\LoginController@login');
Route::post('admin-password/email', 'Admin\ForgotPasswordController@sendResetLinkEmail')->name('admin.password.email');
Route::get('admin-password/reset', 'Admin\ForgotPasswordController@showLinkRequestForm')->name('admin.password.request');
Route::post('admin-password/reset', 'Admin\ResetPasswordController@reset');
Route::get('admin-password/reset/{token}', 'Admin\ResetPasswordController@showResetForm')->name('admin.password.reset');

Route::group(['prefix' => 'admin', 'middleware' => ['auth:admin'], 'as' => 'admin.'], function () {
# Dashboard / Index
Route::get('home', array('as' => 'home','uses' => 'Admin\AdminController@index'));
Route::get('change-password', array('as' => 'change-password','uses' => 'Admin\AdminController@changePassword'));
Route::put('change-password', array('as' => 'change-password','uses' => 'Admin\AdminController@updatePassword'));

// HR (Section)
Route::resource('section', 'Admin\HR\SectionController');

// HR (Designation)
Route::resource('designation', 'Admin\HR\DesignationController');

// HR (Salary Grade)
Route::resource('salary-grade', 'Admin\HR\SalaryGradeController');

// HR (Employee)
Route::resource('employees', 'Admin\HR\EmployeeController');

//HR (Employee cv download)
Route::get('cv-download/{id}', 'Admin\HR\EmployeeController@cvDownload');

// HR (Attendance)
Route::resource('attendances', 'Admin\HR\AttendanceController');
Route::post('attendances/searched-employees', 'Admin\HR\AttendanceController@searchedEmployees');
Route::get('today-checked-in', array('as' => 'today-checked-in', 'uses' => 'Admin\HR\AttendanceController@checkedIn'));
Route::post('checkout', 'Admin\HR\AttendanceController@checkout');

//HR (Leave Type)
Route::resource('leave-types', 'Admin\HR\LeaveTypeController');

//HR (Leave Application)
Route::resource('leave-application', 'Admin\HR\LeaveApplicationController');
Route::post('leave-application/searched-employees', 'Admin\HR\LeaveApplicationController@searchedEmployees');
Route::get('leave-application/{id}/create', 'Admin\HR\LeaveApplicationController@create');
Route::get('leave-application-download/{id}', 'Admin\HR\LeaveApplicationController@applicationDownload');


//HR (Holidays)
Route::resource('holidays', 'Admin\HR\HolidayController');

//HR (Promotions)
Route::resource('promotions', 'Admin\HR\PromotionController');
Route::get('promotions/{id}/create', 'Admin\HR\PromotionController@create');
Route::post('promotions/searched-employees', 'Admin\HR\PromotionController@searchedEmployees');
Route::get('promotions/update/{id}', 'Admin\HR\PromotionController@');

//HR (Payroll Provident Fund)
Route::resource('provident-fund', 'Admin\HR\ProvidentFundController');
Route::post('provident-fund/searched-employees', 'Admin\HR\ProvidentFundController@searchedEmployees');
Route::get('provident-fund/{id}/create', 'Admin\HR\ProvidentFundController@create');


//HR (Payroll Advance Salary)
Route::resource('advance-salary', 'Admin\HR\AdvanceSalaryController');
Route::post('advance-salary/searched-employees', 'Admin\HR\AdvanceSalaryController@searchedEmployees');
Route::get('advance-salary/{id}/create', 'Admin\HR\AdvanceSalaryController@create');

//HR (Payroll-Salary)
Route::group(['prefix' => 'salary', 'as' => 'salary.'], function () {

    //make salary
    Route::get('make-salary', array('as' => 'make-salary', 'uses' => 'Admin\HR\SalaryController@makeSalaryIndex'));
    Route::post('make-salary-employees-list', array('as' => 'make-salary-employees-list', 'uses' => 'Admin\HR\SalaryController@getMakeSalaryEmployeeList'));
    Route::post('make-salary-save/{id}', array('as' => 'make-salary-save', 'uses' => 'Admin\HR\SalaryController@makeSalarySave'));

    //make payment
    Route::get('make-payment', array('as' => 'make-payment', 'uses' => 'Admin\HR\SalaryController@makePaymentSearch'));
    Route::post('make-payment-employees-list', array('as' => 'make-payment-employees-list', 'uses' => 'Admin\HR\SalaryController@getMakePaymentEmployeeList'));
    Route::get('employee/{id}', array('as' => 'employee', 'uses' => 'Admin\HR\SalaryController@makeEmployeeSalary'));
    Route::put('change-payment-status/{id}', array('as' => 'change-payment-status', 'uses' => 'Admin\HR\SalaryController@changePaymentStatus'));

    //generate payslip
    Route::get('payslip', array('as' => 'payslip', 'uses' => 'Admin\HR\SalaryController@generatePayslip'));
    Route::post('payslip-search', array('as' => 'payslip-search', 'uses' => 'Admin\HR\SalaryController@payslipSearch'));

});





/*Accounts Part*/

//Accounts (Groups)
Route::resource('groups', 'Admin\Accounts\GroupController');

//Accounts (Groups)
Route::resource('companies', 'Admin\Accounts\CompanyController');

//Accounts (Customers)
Route::resource('customers', 'Admin\Accounts\CustomerController');

//Accounts (Suppliers)
Route::resource('suppliers', 'Admin\Accounts\SupplierController');



});

Контроллер посещаемости.php

/**
*
*checkout
**/

public function checkout(Request $request)
{
    return $request->all();
}

Источник
Sohel0415
8 апреля 2018 в 11:39
0

покажи нам свой полный маршрут web.php

Rashed Hasan
8 апреля 2018 в 11:43
0

обновленный web.php

Sumit Parkash
8 апреля 2018 в 11:59
0

Попробуйте очистить кеш маршрута с помощью php artisan route:clear

apokryfos
8 апреля 2018 в 12:01
0

Вы делаете отправку, обычно нажимая кнопку, или задействован какой-либо javascript?

Rashed Hasan
8 апреля 2018 в 12:07
0

Да нормально сдаю.

Rashed Hasan
8 апреля 2018 в 12:08
0

В форме у меня много данных с галочкой или снять галочку со всех, мне отправлять весь код?

user9025311
8 апреля 2018 в 12:13
0

можешь выложить весь лог кота

Rashed Hasan
8 апреля 2018 в 12:16
0

Обновил форму со всем кодом.

Rashed Hasan
8 апреля 2018 в 12:17
0

Также пробовал с php artisan route:clear

Jonas Staudenmeir
8 апреля 2018 в 13:00
0

Поместите dd($request, $methods); в начало RouteCollection::getRouteForMethods(), отправьте форму и опубликуйте результат.

Malik Mudassar
21 июня 2018 в 06:36
0

у меня та же проблема застряла на несколько часов

Leena Patel
11 сентября 2018 в 11:45
0

это означает, что он не может найти маршрут для почтового запроса

Ответы (2)

avatar
11 сентября 2018 в 11:41
0

Создать маршрут в файле web.php

Route::get('/', 'LoginController@index');

В контроллере добавить

public function index(){
$postHeader = Request::header();        // HEADER Data
$postData = Request::all();
if(!empty($postData)){

    echo'<pre>';print_r($postData); die;

}       

}

Не забудьте добавить токен crf в свой вид

<form name="" action="login" method="POST">

{{ csrf_field() }}

avatar
Hamelraj
8 апреля 2018 в 11:59
0

попробуйте это

Route::post('checkout', 'Admin\HR\AttendanceController@checkout')->name('checkout');

<form action="{{ route('admin.checkout') }}" method="POST">
Hamelraj
8 апреля 2018 в 12:53
0

Вы проверили все свои маршруты в вашем файле route.php, проверьте, есть ли у вас ваши маршруты php artisan route:list