Я использую Laravel 5 с vue js. В основном я выбираю данные с помощью axios и пытаюсь отобразить их на веб-странице с помощью директивы vue js v-for.
у меня есть таблицы в базе данных, как это:
ratings Table
id
review_id
rating
Тогда у меня есть
reviews table
id
review
Они имеют отношения один ко многим. так вот в моей Review
модели у меня есть метод
public function ratings()
{
return $this->hasMany('App\Rating')
->selectRaw('review_id,AVG(rating) AS average_rating')
->groupBy('review_id');
}
поэтому здесь я хочу получить список отзывов с их средними оценками. поэтому в моем контроллере я делаю это:
public function getAllReviews(Request $request)
{
$reviews = Review::with('ratings')->get();
return $reviews;
}
Итак, я получаю результат, но проблема в том, что в каждом обзоре нет записи рейтингов, поэтому он возвращает ноль? может быть...
когда я пытаюсь выполнить рендеринг в шаблоне vue, выдается ошибка undefined
, потому что в нашей коллекции некоторые обзоры не имеют оценок.
Теперь мой вопрос: могу ли я сделать что-то вроде, если в рейтингах нет записи для конкретного отзыва, можно ли добавить массив со значением 0 ?? поэтому в моем интерфейсе он не будет выглядеть как неопределенный.
Надеюсь, мне удастся объяснить, что я пытаюсь.
Спасибо.