select 来自 laravel 中 3 个表的数据,使用 Eloquent ORM

select data from 3 tables in laravel by using Eloquent ORM

我是 laravel 的新手,一直坚持使用 Eloquent ORM 获取数据。

我的情况是我有 3 tables

  1. user - 包含用户信息
  2. 位置 - 包含位置信息
  3. location_user - 包含用户 ID、位置 ID、用户访问该位置的时间。

现在一个用户可以多次访问一个位置,一个位置可以被多个用户访问。

我想获取用户在特定日期访问过的所有位置名称。

但是无法获取。

下面是数据库结构

location_user table - id user_id location_id visitedtime

位置table - id 纬度经度地点

用户 table - id 名称 phone 电子邮件

并且在用户模型中我定义了关系

public function locations()
{
return $this->belongsToMany('Location')->withPivot('visitedtime');
}

当我在控制器中使用此功能时,我会得到该用户访问过的所有位置

User::find(2)->locations()->select('locations.locality',locations.id')->get()

如何在上面的函数上设置 visitedtime 的条件

User::find(2)
     ->locations()
     ->select('locations.locality',locations.id')
     ->where('pivot_visitedtime', $someDate)
     // or
     // ->where('location_user.visitedtime', $someDate)
     ->get()

// and for $someDate you can use Carbon bc it's stupid-simple, eg.:
$someDate = Carbon::parse('yesterday');