正在创建的学生门户上出现500个内部服务器错误。每当我尝试使用发布请求发布程序时。但是,当我尝试发布学年时,相同的代码也有效。我在laravel 5.6中工作。请在我的问题被否决之前,我在这里阅读了很多解决方案,但似乎对我没有用。
这是错误:
“ SQLSTATE [HY000]:一般错误:1364字段'program'没有默认值(SQL:插入程序()值())”跟踪:[{文件:“ 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');
答案 0 :(得分:0)
解决它之后我终于解决了 问题是我的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和描述ID更改为#new-program和#new-description。
因此,我能够提供“程序”和“描述”的数据值。 模型,控制器和网络路线都可以正常工作