我是laravel的新手,并坚持使用Eloquent ORM获取数据。
我的情景是我有3张桌子
现在,用户可以多次访问某个位置,并且多个用户可以访问某个位置。
我想获取用户在特定日期访问过的所有位置名称。
但无法得到。
以下是数据库结构
location_user表 - id user_id location_id visitedtime
位置表 - id纬度经度位置
用户表 - ID名称电话电子邮件
并且在用户模型中我定义了关系
public function locations()
{
return $this->belongsToMany('Location')->withPivot('visitedtime');
}
当我在控制器中使用此功能时,我获得该用户访问的所有位置
User::find(2)->locations()->select('locations.locality',locations.id')->get()
如何在上述函数
上设置访问时间条件答案 0 :(得分:1)
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');