Laravel 5获取关系模态领域


Laravel 5 Get field of relationship modal

我有以下表格:

用户

id
name
slug
city_id

城市

id
name

用户模式

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

城市模式

public function users()
{
    return $this->hasMany('App'Models'User');
}

我希望能够通过slug找到同一行中的城市名称。有没有一种方法可以做到这一点而不必构建查询?(名称字段冲突?(

我现在使用的查询

    $this->user
        ->join('cities', 'cities.id', '=', 'users.city_id')
        ->select('users.*', 'cities.name as city_name')
        ->where('users.slug', '=', $slug)
        ->firstOrFail();
$user = User::find($userid);

$users = User::where('slug', $slug)->get(); //for many users
$user = User::where('slug', $slug)->first(); //for first user

然后只使用

$user->city->name;
$user->slug;

以获取城市变量。如果用户众多,请使用foreach