Laravel 5获取关系模态领域

时间:2015-08-06 09:42:52

标签: php laravel eloquent

我有以下表格:

用户

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();

1 个答案:

答案 0 :(得分:2)

$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