iNickolay
@iNickolay

Возможно ли в Laravel 5.4 с получить (вывести) название по ID из другого столбца?

Приветствую!

Подскажите, возможно ли в Laravel 5.4 с помощью отношений (или каким-либо другим способом) получить (вывести) название по ID из другого столбца?

Например, есть две таблицы:

[user]
| id | name  | country_id |
| 1  | Vasya | 2          |
| 2  | Petya | 1          |

и

[country]
| id | name   |
| 1  | USA    |
| 2  | Russia |


Как можно получить (вывести) запросом (что-то вроде JOIN), например,
Vasya, Russia
Petya, USA
  • Вопрос задан
  • 281 просмотр
Решения вопроса 1
iNickolay
@iNickolay Автор вопроса
Ответ оказался чуть сложнее:
В модели App\User необходимо указать дополнительные поля:
public function country() {
  return $this->hasOne('App\Country', 'id', 'country_id');
}


а в App\Country
public function user() {
  return $this->belongsTo('App\User');
}


Ну и выводить $user->country()->name;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Barmunk
можно https://laravel.com/docs/5.4/eloquent-relationships конкретно в вашем примере это "один к одному"
Ответ написан
Комментировать
riot26
@riot26
<:З )~~
В модельке App\User:
public function country()
{
    return $this->belongsTo('App\Country', 'country_id');
}

Должна быть моделька App\Country и потом:
echo $user->country()->name;
За ответ не ручаюсь, пока нет возможности проверить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы