用于更复杂的表结构的Eloquent / Query Builder

时间:2015-02-17 22:43:03

标签: mysql laravel join

好的,所以这可能不是世界上最大的问题,我相信有人能帮我解决我出错的地方。在我遇到问题之前,这里有一些事实:

  • Laravel 5& MySQL的
  • 我有3个主要表:meetupseventslocations
  • 我还有一个数据透视表:event_location
  • Meetups hasMany活动
  • 活动belongsTo Meetups
  • 活动belongsToMany地点
  • 地点belongsToMany活动

问题

我目前正在尝试搜索位置(通过表单 - 即Input::get('data')),这会显示所有事件 em> location 以及与该事件相关联的所有 meetups

在我的SearchController中,我有以下内容:

// Get the searched data
$data = Input::get('data');

// Get all location, which are 'LIKE' the inputted data.
$locations = Location::where('title', 'LIKE', '%'. $data .'%')->get();

此时我不知道该怎么办。我需要从每个位置访问事件,之后我需要获得与该位置对应的聚会,但我不知道如何解决这个问题。可以使用joins()完成此操作,还是循环遍历$locations变量并为每个变量获取->events并将它们放入数组中?或者,我应该使用DB::并运行自定义查询吗?

1 个答案:

答案 0 :(得分:1)

请参阅@ iavery的评论,当您拥有所有belongsToMany关系时,以下情况似乎有效:

Location::where( ... )->with('events.meetups')->get();