Я использую Eloquent, чтобы вытащить пользователей из моей базы данных, и я хочу «присоединиться» к почтовому индексу из таблицы моих пользователей с почтовым индексом из таблицы моих городов, для извлечения имени города.Laravel with() метод, передать другой столбец, чем первичный
Heres упрощенная версия моих таблиц:
users =>
id
username
password
postal_code
cities =>
postal_code
city_name
В моей модели пользователя у меня есть метод, называемый город(), объявляющие отношения с моим городом таблицей:
public function city() {
return $this->hasOne('cities', 'postal_code');
}
сейчас проблема когда я пытаюсь выполнить User :: with ('city') -> find ($ user_id), значение, переданное методу, является первичным ключом, а id вместо почтового_кода.
Так что мой запрос заканчивает тем, что (это для пользователя с идентификатором 1):
select * from `cities` where `cities`.`postal_code` in ('1')
Есть ли каким-то образом указать, что я хочу передать POSTAL_CODE вместо этого?
Спасибо, что сработало! Это немного запутывает переход от присоединения вручную к использованию ORM, поэтому догадайтесь, что я их перепутал. – jah
И о городах, имеющих одинаковые почтовые индексы, я только что присвоил имя одному и тому же, так что это не проблема (; Onlt несколько городов здесь, в Дании, в любом случае. Первичный ключ здесь уже был почтовым кодом, поэтому это просто отлично – jah