Laravel 查询:如何将布尔值 1 和 0 转换为 'passed' 或 'failed'
Laravel Query: How to convert boolean 1 and 0 into 'passed' or 'failed'
我目前有一个查询,其中显示了测验和参加测验的用户,包括测验的总分、姓名、正确答案的数量,最后是 'status',即 1 或0 或通过或失败。
我想在状态中显示它是 'passed' 或 'failed' 而不是 1 或 0。
public function getQuizInfoByQuizID(Request $request, $id){
$remarks = DB::table('user_scores')->where('quiz_id',$id)
->Join('quiz_information','quiz_information.id', '=', 'quiz_id')
->rightJoin('users','users.id', '=', 'user_id')
->select('quiz_information.quiz_title AS Quiz Title','total_points AS Points','number_of_correct_answers',
'users.name AS Name','remarks as STATUS')
->groupBy('quiz_title','total_points','number_of_correct_answers','name','remarks')
->get()
->toArray();
return response(['message'=>"Remarks successfuly shown",
'error'=>false,
'error code'=>200,
'line'=>"line".__LINE__."".basename(__LINE__),
'quizRemarks'=>$remarks],200,[],JSON_NUMERIC_CHECK);
}
您可以在 select
查询中使用 if
语句,例如 if(remarks=1,"passed","faild")
。
所以用这个代替 select
:
...->select('quiz_information.quiz_title AS Quiz Title','total_points AS Points','number_of_correct_answers',
'users.name AS Name',DB::raw('if(remarks=1,"passed","faild") as STATUS'))
但您可以使用模型 (Eloquent), then use accessor (Eloquent accessor)。
我目前有一个查询,其中显示了测验和参加测验的用户,包括测验的总分、姓名、正确答案的数量,最后是 'status',即 1 或0 或通过或失败。
我想在状态中显示它是 'passed' 或 'failed' 而不是 1 或 0。
public function getQuizInfoByQuizID(Request $request, $id){
$remarks = DB::table('user_scores')->where('quiz_id',$id)
->Join('quiz_information','quiz_information.id', '=', 'quiz_id')
->rightJoin('users','users.id', '=', 'user_id')
->select('quiz_information.quiz_title AS Quiz Title','total_points AS Points','number_of_correct_answers',
'users.name AS Name','remarks as STATUS')
->groupBy('quiz_title','total_points','number_of_correct_answers','name','remarks')
->get()
->toArray();
return response(['message'=>"Remarks successfuly shown",
'error'=>false,
'error code'=>200,
'line'=>"line".__LINE__."".basename(__LINE__),
'quizRemarks'=>$remarks],200,[],JSON_NUMERIC_CHECK);
}
您可以在 select
查询中使用 if
语句,例如 if(remarks=1,"passed","faild")
。
所以用这个代替 select
:
...->select('quiz_information.quiz_title AS Quiz Title','total_points AS Points','number_of_correct_answers',
'users.name AS Name',DB::raw('if(remarks=1,"passed","faild") as STATUS'))
但您可以使用模型 (Eloquent), then use accessor (Eloquent accessor)。