代码之家  ›  专栏  ›  技术社区  ›  Rashed Hasan Vijayaragavan

如何更新字段以将值推送到Laravel中的现有值

  •  0
  • Rashed Hasan Vijayaragavan  · 技术社区  · 6 年前

    我想更新 questions 桌子 answerid 带逗号分隔符的列,当用户针对一个问题多次给出答案时。
    这是 answers 表波纹管-

    id   questionid   answer
    1        1         ans1 
    2        1         ans2
    3        1         ans3
    

    还有我的 问题 表是-

    id   userid   questions  answerid
    1     100        q1         1
    2     110        q2
    3     1345       q3
    

    在一个问题上回答了很多次之后 问题 桌子应该像-

    id   userid   questions  answerid
    1     100        q1       1,2,3
    2     110        q2
    3     1345       q3 
    

    当用户回答qeustion时,我将把它保存到我的数据库中,如下所示-

    public function saveAnswer(Request $request)
    {
        $id = session()->get('did');
        $phone = session()->get('phone');
        $email = session()->get('email');
        if(empty($phone) || empty($email)){
            return redirect('donor-login');   
        }
    
        $answer = DB::table('answers')
                        ->insert([
                            'questionid' => $request->questionid,
                            'answer'     => $request->answer,
                            'created_by' => $id,
                            'updated_by' => $id,
                            'created_at' => date("Y-m-d H:i:s"),
                        ]);
        if ($answer) {
            DB::table('questions')
                     ->where('id', $request->questionid)
                     ->update([
                        'answerid' => ????here is my problem
                     ]);
            return back()->with('success', 'Your answer successfully saved!');
        }
    
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   DsRaj    6 年前

    将answerid更新为当前id,concat更新为,

    DB::table('questions')->where('id', $request->questionid)->update(['answerid'=>DB::raw("CONCAT(answerid,',".$answer."')")]);