【发布时间】:2015-04-26 11:07:49
【问题描述】:
我正在尝试了解 laravel ORM,我有以下模型。
我有一个: 带有 id、firstname、lastname 的用户表 带有 - id、name 的城市表 带有 - user_id, city_id 的 usercity 表
usercity 表跟踪用户访问过的城市。
我在城市模型中添加了以下内容:
public function usercity()
{
return $this->hasMany('App\UserCity');
}
以及用户模型中的另一个功能
public function usercity()
{
return $this->hasMany('App\UserCity');
}
我还为 UserCity 添加了一个模型,并在那里添加了以下功能。
public function city()
{
return $this->belongsTo('App\City');
}
public function user()
{
return $this->belongsTo('App\User');
}
现在,目标是检索用户访问过的所有城市。我使用了以下功能。
$usercities = User::where('id','=',1)->first()->usercity()->get();
这在它检索 user_id 和 city_id 的意义上是有效的。 我还需要做什么才能获得城市表中的所有字段? 当前响应:
[[{"user_id":"1","city_id":"1"},{"user_id":"1","city_id":"2"},{"user_id":"1","city_id":"3"},{"user_id":"1","city_id":"4"}]]
我也许可以使用内部联接,但我想看看是否有另一种方法可以检索数据,从而为我安全地填充数据。
【问题讨论】: