【发布时间】:2018-11-20 20:11:28
【问题描述】:
我有一个表 questions 在其中列 answerid 值类似于 1,2,3,4,5,6,7,8,9,10 。现在,当我要从 answers 表中删除 answer 时,我想更新 questions 表。假设,我要从answers 表中删除5 号码答案,并从questions 表中删除这个5 号码。但是当我这样做时,questions 表正在像这样更新-[{"answerid":"1,2,3,4,6,7,8,9,10"}] 而我想像 1,2,3,4,6,7,8,9,10 一样更新。我尝试了这样的方法-
public function deleteAnswer($id)
{
$questionId = DB::table('answers')->where('id', $id)->get(['questionid']);
$qid = $questionId[0]->questionid;
$questionAns = DB::table('questions')->where('id', $qid)->get(['answerid']);
$ansId = explode(",",$questionAns);
//dd($ansId);
while ($aid = current($ansId)) {
if ($aid == $id) {
$offset = key($ansId);
}
next($ansId);
}
unset($ansId[$offset]);
$implodeAnsIds = implode(",",$ansId);
DB::table('questions')->where('id', $qid)->update([
'answerid' => $implodeAnsIds,
]);
return 'done';
}
【问题讨论】:
-
改写标题——没意义
标签: php arrays laravel explode implode