У меня следующая ситуация:Laravel - кол-во вариантов с hasMany в модели
У меня есть несколько вопросов, и у этих вопросов есть возможные ответы. Я хотел бы подсчитать, сколько раз ответили на каждый пункт по каждому вопросу.
Для этого у меня есть 3 таблицы:
- Вопросы
- Ответы
- Answers_questions
В Answers_questions У меня есть эти отношения:
public function question(){
return $this->belongsTo('App\Question', question_id, 'id');
}
и
public function answers(){
return $this->hasMany('App\Answers', 'question_id', 'question_id');
}
Чтобы получить эту информацию в контроллер я использую это:
$answers_questions = new Answers_questions;
$questions = $answers_questions->groupBy('question_id')->get();
По мнению:
@foreach($questions as $question)
{{ $question->question }}
@foreach($question->answer as $answer)
Answer: {{ $answer->answer}} - **Count: ???**
@endforeach
@endforeach
Итак, как я могу рассчитывать, чтобы это показать в мой взгляд? Я попытался это сделать:
return $this->hasMany('App\Answers', 'question_id', 'question_id')->selectRaw('*, count(answer) as count');
И после того, как в представлении для каждого вопроса, просто отобразился первый ответ с графом.
Как это решить?
Спасибо !!!
Я попытался это, но все же рассчитывать только первый ответ. –
Вы можете попробовать реализовать метод count: $ questions = $ answers_questions-> groupBy ('question_id') -> get() -> count(); –
Спасибо Vinicius. Я попробую и вернусь, чтобы узнать, сработало ли это. –