雄辩模型多对一关系

时间:2014-07-05 12:10:55

标签: php orm model eloquent relationship

举个例子:

我的表格users的字段为idnamecity。我有另一张表,其中包含城市的名称。表名为cities,字段为:idname。因此,我将一个城市的ID(主键)存储在表city的{​​{1}}列中。在获得用户Eloquent模型的同时,获取城市名称的最佳方式是什么?

2 个答案:

答案 0 :(得分:1)

按照惯例,您可以将您的关系命名为city(),但还有一个属性city是外键,因此您无法访问相关模型。

如果是这样,那么我建议将外键重命名为city_id或类似的东西,然后它会起作用:

$user->city; // City model
$user->city->name;

否则,如果您无法更改架构,请重命名关系:

// User model
public funciton relatedCity()
{
  return $this->belongsTo('City', 'city');
}

// then
$user->relatedCity->name;

答案 1 :(得分:0)

假设您已经配置了模型

// find a user named John
$user = User::where('name', '=', 'John')->first();

// get the city of the user
$userCity = $user->city;