簡體   English   中英

Laravel 5.6 Jquery Ajax 500內部服務器錯誤

[英]Laravel 5.6 Jquery Ajax 500 internal server error

請在正在創建的學生門戶上收到500個內部服務器錯誤。 每當我嘗試使用發布請求發布程序時。 但是,當我嘗試發布學年時,相同的代碼也有效。 我在laravel 5.6中工作。 請在我的問題被否決之前,我在這里閱讀了很多解決方案,但似乎對我沒有用。

這是錯誤:

“ SQLSTATE [HY000]:一般錯誤:1364字段'program'沒有默認值(SQL:插入程序()值())”跟蹤:[{文件:“ C:\\ xampp \\ htdocs \\ portal \\供應商\\ laravel \\框架的\\ src \\照亮\\數據庫\\ 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');

解決該問題后,我終於解決了問題。我的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文件中的program和description的ID更改為#new-program和#​​new-description,以防止發生沖突。

因此,我能夠提供“程序”和“描述”的數據值。 模型,控制器和網絡路線都可以正常工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM