首页 > 解决方案 > 如何修复错误 > 完整性约束违规:1048 列“状态”不能为空

问题描述

我正在尝试编辑订单表中的状态字段。我得到这样一个错误:SQLSTATE [23000]:完整性约束违规:1048 列'状态'不能为空(SQL:更新feedbacksstatus=?,feedbacksupdated_at= 2021-02-24 11:24:35 where id= 3)“

我的 edit_feedback.blade.php :

<div class="modal fade" id="edit_feedback" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-xl">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Formular de editare a unui feedback</h5>

                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">


                <form  id="feedback_form" method="GET" >
                  {{ csrf_field() }}
                
                    <div class="modal-body">
                        <input type="hidden" name="feedback_id" id="feedback_id">


                        <div class="form-group">
                            <label>
                                Status
                            </label>
                            <input type="text" name="feedback_status" id="feedback_status" class="form-control" placeholder="public/private" required>

                        </div>

                    </div>

            </div>

            <div class="modal-footer">

                <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Renunță</button>
                <button type="submit" name="submit" class="btn btn-primary">Editează</button>
            </div>

            </form>
        </div>

    </div>
</div>

我的路线:

Route::get('/feedback/{id}/edit','App\Http\Controllers\DashboardController@feedback_edit');

我的控制器:

 public function feedback_edit(Request $request, $id)
    {
       
        $feedbacks = Feedbacks::find($id);
        $feedbacks->status = $request->input('feedback_status');
        $feedbacks->save();
        return response()->json(['status' => 1, 'msg' => 'Feedback-ul a fost editat cu succes']);
    }

我的 jQuery/ajax :

$('#feedback_form').on('submit',function(e)
    {
        e.preventDefault();
        $.ajax({
            method: $(this).attr('method'),
            url: '/feedback/'+$('#feedback_id').val()+'/edit',
            data: new FormData(this),
            processData: false,
            dataType: 'json',
            contentType: false,
            complete: function(r) {
                var data = r.responseJSON;
                if (data.status == 0) {
                    console.log('error');
                } else {
                    $('#feedback_form')[0].reset();
                    $('#edit_feedback').modal('hide');
                    //  location.reload();
                    // alert(data.msg);
                }
            }
        });
    });
});

标签: phpjquerylaravel

解决方案


替换$request->input('feedback_status')为实际提供价值的东西。

例如。试着$data = request()->all();看看那里有什么。


推荐阅读