У меня есть запрос, в котором я пытаюсь получить какое-то значение при определенных условиях, проблема в том, что в конце я получаю список массивов (например, 4), но значение поля равно нулю. Не знаю, почему ... если некоторые условия не выполняются, я не ожидаю получить ничего, а не массив с нулевыми значениями.
$questions = MyModel::select(
'answer_statistics.id',
'answer_statistics.paragraph_id',
'paragraphs.free_text as free_text',
'paragraphs.id as paragraph_id',
'questions.best_match as best_match'
)
->whereNotNull('answer_statistics.paragraph_id')
->leftJoin('paragraphs', 'answer_statistics.paragraph_id', 'paragraphs.id')
->leftJoin('questions', 'paragraphs.question_id', 'questions.id');
if($excepted_questions){
$questions->whereNotIn('answer_statistics.id', $excepted_questions);
}
if($confidence_specs->best_match){
$questions->whereNotNull('questions.best_match');
}
if($confidence_specs->votes != 0 && $confidence_specs->weight != 0){
$questions->where('answer_statistics.votes', '<=' , $confidence_specs->votes)
->orWhere('answer_statistics.weight', '<=' , $confidence_specs->weight);
}
$questions->inRandomOrder()
->limit(4)
->get();
dd($questions->get()); // here I get 4 arrays with null values..