Como obter dados de notas específicos usando o Laravel Eloquent?
O que eu quero:
Para obter ograde
do que o usuário respondeu no banco de dados, se existir, e obtenha a nota dessa resposta.O que eu tenho:
eu tenho3
mesasshort_answer
, sa_sa_answer
, short_answer_answer
.Agora,short_answer
tabela tem pergunta, e cada pergunta tem muitas respostas localizadas noshort_answer_answer
tabela e a nota também está incluída, a questão pode ter1 ou mais responda.Qual código eu tenho:
Controlador
foreach($sa_question_id as $key => $value){
$sa = ShortAnswer::with('answers')->find($sa_question_id[$key]);
$possible_answers = [];
foreach($sa->answers as $possible_answer){
$possible_answers[] .= strtolower($possible_answer->answer);
}
if(in_array(strtolower($sa_answer[$key]), $possible_answers)){
$grade = ShortAnswerAnswer::where('answer', $sa_answer[$key])->get();
echo "plus +1. Grade is: " . $grade->grade . "<br>";
}
}
O problema é:
Estou apenas recebendo a resposta em que a resposta é igual à resposta do usuário. Mas e se eu tiverDOIS mesma resposta e diferentegrade
e obviamente pergunta diferente. Pode selecionar o errado.
Nota: Estou usando o Laravel5.1
Atualizar: Estrutura da tabela
short_answer
- name
- question
sa_sa_answer
- short_answer_id
- short_answer_answer_id
short_answer_answer
- answer
- grade
Eu já resolvi esse problema, no entanto, ninguém recebeu a recompensa, mas Se você pudesse responderessa questão, Posso te dar a recompensa mais2 marca de seleção e votação, eu realmente preciso de mais ajuda com isso. Também está relacionado com esta questão. A recompensa desaparecerá em três dias a partir de agora.