【问题标题】:Laravel 5.6 Jquery Ajax 500 internal server errorLaravel 5.6 Jquery Ajax 500 内部服务器错误
【发布时间】:2018-08-23 14:57:03
【问题描述】:

请在正在创建的学生门户上收到 500 内部服务器错误。每当我尝试使用发布请求发布程序时。但是,当我尝试发布学年时,相同的代码有效。我在 laravel 5.6 中工作。请在我的问题被否决之前,我已经在这里阅读了很多解决方案,但似乎对我没有用。

这是错误:

“SQLSTATE[HY000]:一般错误:1364 字段“程序”没有默认值(SQL:插入程序()值())”跟踪:[{file:“C:\xampp\htdocs \portal\vendor\laravel\framework\src\Illuminate\Database\Connection.php",…},…]

program.blade.php

<div class="modal-body">
    <div class="row">
        <div class="col-sm-12">
            <input type="text" name="program" id="program" class="form-control" placeholder="Program">
        </div>
    </div>
    <br>
    <div class="row">
        <div class="col-sm-12">
            <input type="text" name="description" id="description" class="form-control" placeholder="Description">
        </div>
    </div>
</div>
<div class="modal-footer">
    <button data-dismiss="modal" class="btn btn-default" type="button">Close</button>
    <button class="btn btn-success" id="btn-save-program" type="button">Save</button>
</div>

选择表格

<div class="col-sm-5">
  <label for="program">Programs</label>
  <div class="input-group">
    <select name="program_id" id="program_id" class="form-control">
    </select>
    <div id="add-more-program" class="btn input-group-addon">
      <span class="icon_plus"></span>
    </div>
  </div>
</div>

Program.php(模型)

protected $table = 'programs';
protected $fillable = [
    'program', 'description'
];
protected $primaryKey = 'program_id';
public $timestamps = false;

控制器

public function InsertProgram(Request $request) {
    if ($request->ajax()) {
        return response(Program::create($request->all()));
    }
}

js代码

    $('#btn-save-program').on('click', function(e) {
  e.preventDefault();
  var program = $('#program').val();
  var description = $('#description').val();
  $.post("{{ route('InsertProgram') }}", function(data) {
    console.log(data);
  })
})

最后是网络路由

Route::post('courses/manage/create-program', 'CourseController@InsertProgram')->name('InsertProgram');

【问题讨论】:

  • 500 错误表示您的服务器存在问题。首先检查控制台的网络选项卡中的响应,以查看确切的响应是什么。然后检查您的服务器日志以找出导致问题的确切原因。
  • 这是来自我的网络的响应“SQLSTATE[HY000]: 一般错误: 1364 字段 'program' 没有默认值 (SQL: insert into programs () values ()) " trace : [{file: "C:\xampp\htdocs\portal\vendor\laravel\framework\src\Illuminate\Database\Connection.php",…},…] 我已经用 laravel 创建了项目,但现在我试图让它实时,这就是为什么我使用 ajax 并且每当我尝试发出发布请求时都会收到该错误
  • 我为你编辑了你的问题。希望对 Laravel 有更多了解的人能够帮助您
  • 该错误表明您正在创建一个没有任何值的Program,因此请确保您实际发送和接收$requestProgram 的值。您可以通过查看请求而不是网络选项卡中的响应来检查这一点。
  • 我该怎么做?因为网络标签中没有任何指示

标签: php ajax laravel laravel-blade


【解决方案1】:

我在解决它后终于解决了它 问题在于我的 ajax 发布请求 我正在尝试将程序的空值发送到没有默认值的 MYSQL 表。所以我改用了这个jquery

$('#btn-save-program').on('click', function(e) {
  e.preventDefault();
  var program = $('#new-program').val();
  var description = $('#new-description').val();
  $.ajax({
    type: "POST",
    url: "{{ route('InsertProgram') }}",
    data: { program: program, description: description },
    success: function(data) {
      console.log(data);
    }
  })
})

我将 program.blade.php 文件中程序和描述的 id 都更改为 #new-program 和 #new-description 以防止冲突。

因此,我能够提供“程序”和“描述”的数据值。 模型、控制器和网络路由都可以正常工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 2020-02-12
    • 2018-04-16
    • 2016-03-24
    • 1970-01-01
    • 2019-05-12
    • 2015-09-20
    • 2023-03-04
    相关资源
    最近更新 更多