我有一个来自用户和课程的数据透视表。
当end_at列为> day时,我只需要获得course_id。
因此,我在User模型中创建了一个方法,以仅获取此条件。
public function getPurchasedCoursesId()
{
return $this->courses()->wherePivot('end_at','>=', Carbon::now())->get();
}
这将正确返回结果,但是如何对结果进行make仅返回特定列(course_id) 结果示例:
$course_ids = $user->getPurchasedCoursesId()
dd($coursesids)
Result:
[1, 4, 6, 10]
答案 0 :(得分:1)
最简单的方法是使用pluck():
$this->courses()->wherePivot('end_at','>=', Carbon::now())->pluck('id');
以上实际上是从courses
表而不是pivot
表中提取信息,因为两者的数据将在同一查询中检索。