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

时间:2018-06-11 04:37:24

标签: php mysql laravel explode implode

当用户针对一个问题多次提供答案时,我想用逗号分隔符更新questionsanswerid列。
这是answers表贝娄 -

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

我的questions表是 -

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

在针对一个问题多次回答后,questions表应该像 -

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

当用户回答qeustion时,我将其保存到我的数据库中,如bellow -

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 个答案:

答案 0 :(得分:1)

使用当前ID更新answerid,并使用

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