Получить список строк на основе данных от одного ко многим (обратным) отношениям в Laravel - PullRequest
0 голосов
/ 01 июля 2018

У меня есть две модели, Showtime и Movie. Со следующими отношениями.

class Showtime extends Model{
    public function movie() {
        return $this->belongsTo('App\Movie');
    }
    //...
}

, а для фильма

class Movie extends Model
{
    public function showtimes() {
        return $this->belongsToMany('App\Showtime');
    }
    //...
}

Структура их таблиц выглядит следующим образом.

1009 * Showtime *

  • ID
  • movie_id
  • дата
  • ...

Видео

  • ID
  • название
  • ...

У меня вопрос, как я могу получить список фильмов, которые перечислены в расписание сеансов после определенной даты.

PS: Извините за название, я не знал, как его выразить короткими описательными словами.

1 Ответ

0 голосов
/ 01 июля 2018

Ваше определение отношений в модели Movie неверно, оно должно использовать hasMany:

class Movie extends Model
{
    public function showtimes() {
        return $this->hasMany('App\Showtime');
    }
}

Исправив эту часть, вы сможете запросить фильмы с указанием времени после указанной даты, например:

$date = Carbon::now();
$movies = Movie::whereHas('showtimes', function ($query) use ($date) {
    $query->where('date', '>=', $date);
})->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...