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)。