【问题标题】:Laravel Ajax 500 internal server error when saving data to database将数据保存到数据库时 Laravel Ajax 500 内部服务器错误
【发布时间】:2019-05-24 04:02:25
【问题描述】:

我试图从 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 显示曲@home:547 c@家:529 onclick@home:349

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

谢谢。

【问题讨论】:

  • 我们需要比这更多的方式来帮助您。这 500 很可能来自您的 shift_master_models 实例化和/或保存,但如果没有 laravel 错误消息,它实际上可能在任何地方。查看storage/logs中存储的日志
  • 日志错误:local.ERROR: 异常 'Symfony\Component\Debug\Exception\FatalErrorException' 在 C:\wamp64\ 中出现消息 'Class 'App\Http\Controllers\shift_master_models' not found' www\LaravelTest\app\Http\Controllers\shiftMasterController.php:55

标签: php mysql ajax laravel


【解决方案1】:

您忘记将 shift_master_models() 导入控制器。

只需将它写在控制器类的顶部即可:

use App\shift_master_models;

确保在 Model 类中正确声明了命名空间,例如:namespace App;,或者如果它在 Models 文件夹中,就像这样:namespace App\Models;

【讨论】:

    【解决方案2】:

    &lt;meta name="csrf-token" content="{{ csrf_token() }}" /&gt;

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

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

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

    【讨论】:

    • 我将其更正为 $('meta[name="csrf-token"]') ,然后出现此错误:无法加载资源:json-addshiftMaster:1 服务器响应状态500 个(内部服务器错误)
    【解决方案3】:

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

    use App\shift_master_models;
    

    【讨论】:

      猜你喜欢
      • 2015-05-04
      • 1970-01-01
      • 2014-07-02
      • 2012-03-08
      • 2017-04-12
      • 2020-02-12
      • 2018-04-16
      • 2016-03-24
      • 1970-01-01
      相关资源
      最近更新 更多