2015-08-06 6 views
0

У меня есть следующие таблицы:Laravel 5 Получить поле отношений модальный

пользователя

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

ответ

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

+0

Я думаю, вы неправильно поняли вопрос, я пытаюсь получить строку пользователя, где slug = $ slug вместе с названием города (не параметр, просто у меня есть city_id в таблице моих пользователей, и хотел бы сделать соединение, чтобы получить название города). запрос = выбор пользователей. *, City.name от пользователей внутреннего объединения города на users.city.id = city.id где users.slug = $ пробкового спасибо :) – Carlos

+0

хорошо изменили его :) –

+0

ничего себе это было так просто хаха спасибо :) – Carlos

Смежные вопросы