laravel雄辩的查询关系

时间:2014-06-24 09:09:32

标签: laravel eloquent relation

我想根据city_id表中保存的locations加载事件。

这些是我的表格:

活动表:

$table->increments('id');
$table->string('event_name');
$table->integer('event_location_id')->unsigned();

地点表:

$table->increments('id');
$table->string('location_name');  
$table->integer('city_id')->unsigned();

在我的活动模型中,我有:

public function locations()
{
    return $this->belongsTo('Locations','event_location_id');
}

在我的位置模型中:

public function city()
{
    return $this->belongsTo('City','city_id');
}

如何根据城市获取活动?

2 个答案:

答案 0 :(得分:0)

要获得关系位置,请按照这种方式进行

City::find($id)->locations

如果你想得到你需要迭代它的名字

答案 1 :(得分:0)

经典hasManyThrough示例:

我假设模型名称:EventLocationCity

// City model
public function events()
{
   return $this->hasManyThrough('Event', 'Location', 'city_id', 'event_location_id');
}

// then simply
$city->events; // Collection of Event models

它将返回与给定城市的所有Event模型相关的所有Location模型。

阅读http://laravel.com/docs/eloquent#relationships