【问题标题】:How to fix error > Integrity constraint violation: 1048 Column 'status' cannot be null如何修复错误 > 完整性约束违规:1048 列“状态”不能为空
【发布时间】:2021-02-24 11:35:17
【问题描述】:

我正在尝试编辑订单表中的状态字段。我得到这样一个错误:SQLSTATE [23000]:完整性约束违规:1048列'状态'不能为空(SQL:更新feedbacks设置status=?,feedbacks.updated_at=2021-02- 24 11:24:35 其中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);
                }
            }
        });
    });
});

【问题讨论】:

标签: php jquery laravel


【解决方案1】:

$request-&gt;input('feedback_status') 替换为真正有价值的东西。

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

【讨论】:

  • $(this).attr('method') 替换为"POST"。该 JS 也不考虑 CFR 令牌。
  • 此路由不支持 POST 方法。支持的方法:GET、HEAD。
  • 我也尝试过 GET,但我有同样的错误:SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'status' cannot be null (SQL: update feedbacks set status = ?, feedbacks.updated_at = 2021-02-24 11:53:06 其中id = 3)"
猜你喜欢
  • 2016-11-07
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 2021-01-13
  • 2018-05-01
  • 2021-09-25
相关资源
最近更新 更多