将数据保存到数据库时Laravel Ajax 500内部服务器错误

时间:2018-12-25 13:22:46

标签: php mysql ajax laravel

我试图从ajax保存表单数据,但是出现500内部服务器错误的错误,代码在这里,

首页html文件:

@extends('layouts.master')
@section('style')
<meta name="csrf-token" content="{{ csrf_token() }}" />
@endsection
@section('content')
<div class="box box-info">
        <div class="box-header with-border">
          <h3 class="box-title">Shift Master</h3>
        </div>
        <!-- /.box-header -->
        <!-- form start -->
        <form class="form-horizontal" method="POST">
            <input type="hidden" name="token" value="{{ csrf_token() }}">
          <div class="box-body">
            <div class="row">
                <div class="col-md-6">
                    <label>Shift Id : </label><span class="text-danger">*
                    <input type="text" class="form-control" name="shift_id" id="shift_id" placeholder="Enter ...">
                </div>
                <div class="col-md-6">
                    <label>Shift Name : </label><span class="text-danger">*
                    <input type="text" class="form-control" name="shift_name" id="shift_name" placeholder="Enter ...">
                </div>                    
            </div>
            <div class="row">
                <div class="col-md-12">
                    <br>
                </div>
            </div>
            <div class="row">
                <div class="col-md-6 ">
                    <label>Shift Status : </label><span class="text-danger">*
                    <input type="text" class="form-control" name="shift_status" id="shift_status" placeholder="Enter ...">
                </div>
                <div class="col-md-6">
                    <label>Shift Remark : </label>
                    <input type="text" class="form-control" name="shift_remark" id="shift_remark" placeholder="Enter ...">
                </div>                    
            </div>

          </div>
          <!-- /.box-body -->
          <div class="box-footer">
            <button type="submit" class="btn btn-default">Cancel</button>
            <button type="button" class="btn btn-info pull-right" onClick ="c();" name="save_shift_master" >Save</button>

          </div>
          <!-- /.box-footer -->
        </form>
      </div>

@endsection
@section('script')


<script src="{{ asset('js/jquery.min.js') }}"></script>

<script type="text/javascript">



function c(){
   displayQu();
}
//data table value change

function displayQu(){   

    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf_token]').attr('content')
      }
    });


  var shift_id = $('#shift_id').val();
  var shift_name = $('#shift_name').val();
  var shift_status = $('#shift_status').val();
  var shift_remark = $('#shift_remark').val();

  $.ajax({

    type: "POST",
    url: "{{URL::to('/json-addshiftMaster')}}",
    data:{shift_id:shift_id, shift_name:shift_name, shift_status:shift_status, shift_remark:shift_remark},
    cache: false, 

    success: function(data){

        alert(data.success);

    }
  });
} 
</script>
@endsection

web.php:

Route::get('/home', 'shiftMasterController@create')->name('shiftMaster');
Route::post('/json-addshiftMaster', 'shiftMasterController@addshift');

控制器方法:

public function addshift()
{

    $table2 = new shift_master_models();
    $table2->shift_id=  Input::get('shift_id');
    $table2->shift_name=  Input::get('shift_name');
    $table2->shift_status=  Input::get('shift_status');
    $table2->shift_remark=  Input::get('shift_remark');

    $table2->save();

    $response = array(
    'status' => 'success',
    'msg'    => 'Setting created successfully',
    );

    return Response::json($response);
}

错误:

jquery-3.3.1.min.js:2 POST http://127.0.0.1:8000/json-addshiftMaster 500(内部服务器错误) 发送@ jquery-3.3.1.min.js:2 ajax @ jquery-3.3.1.min.js:2 displayQu @主页:547 c @家:529 onclick @ home:349

我是Laravel的新手,嘿,请帮我,我找不到解决方法。

谢谢。

3 个答案:

答案 0 :(得分:0)

<meta name="csrf-token" content="{{ csrf_token() }}" />

$('meta[name="csrf_token]')

您现在看到问题了吗?这只是一个错字。应该是

$('meta[name="csrf-token"]')

答案 1 :(得分:0)

您必须在控制器类的顶部导入模型类,

use App\shift_master_models;

答案 2 :(得分:0)

您忘记将shift_master_models()导入Controller。

只需将其写在您的控制器类的顶部:

use App\shift_master_models;

请确保在您的Model类中正确声明了命名空间,例如:namespace App;或是否在Models文件夹中,例如:namespace App\Models;