0

我正在尝试更新调查中的问题,但出现此错误,我不确定为什么,这是我尝试更新的代码

if ($request->question_id) {
    $ids = [];
    foreach ($request->question_id as $number => $item) {
        $questions = SurveySurveyQuestion::where('survey_id', $survey->id)
            ->where('survey_question_id', $item['id'])->first();
        if (empty($item['id'])) {
            $questions = new SurveySurveyQuestion();
            $questions->survey_id = $id;
            $questions->survey_question_id = $item['id'];
        }
        $questions->order = $number;
        $questions->save();
        $ids[] = $questions['id'];
    }

    if (count($ids) > 0) {
        SurveySurveyQuestion::whereNotIn('survey_question_id', $ids)
            ->where('survey_id', $survey->id)->delete();
    }
}

错误在线显示

$问题->订单= $数字;

编辑:现在它保存了添加的新问题,但是当我尝试重新排序问题或删除问题时,我得到了这个错误

未找到列:1054 'where 子句'中的未知列 'id'(SQL:更新survey_survey_questionsorder= 0,其中id为空)

为什么会这样?

4

1 回答 1

2

这是我到达的解决方案

if ($request->question_id) {
    $ids = [];
    foreach ($request->question_id as $number => $item) {
        $questions = SurveySurveyQuestion::where('survey_id', $survey->id)
            ->where('survey_question_id', $item['id'])->first();
        if (empty($item['id']) || !$questions) {
            $questions = new SurveySurveyQuestion();
            $questions->survey_id = $id;
            $questions->survey_question_id = $item['id'];
            $questions->order = $number;
            $questions->save();
        } else {
            SurveySurveyQuestion::where('survey_id', $survey->id)
                ->where('survey_question_id', $item['id'])->update(['order' => $number]);
        }
        $ids[] = $item['id'];
    }
    if (count($ids) > 0) {
        SurveySurveyQuestion::whereNotIn('survey_question_id', $ids)
            ->where('survey_id', $survey->id)->delete();
    }
}
于 2020-03-05T16:53:51.740 回答