我有两个模型,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');
}
//...
}
他们的表结构看起来像这样。
放映时间
电影
我的问题是,如何获得特定日期之后在放映时间中列出的电影列表。
PS:对不起,标题,我不知道如何用简短的描述性词来表达。
答案 0 :(得分:3)
您在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();