Eloquent を使用してデータベースからユーザーを取得しています。ユーザー テーブルの郵便番号と都市テーブルの郵便番号を「結合」して、都市名を取得したいと考えています。
私のテーブルの簡略化されたバージョンは次のとおりです。
users =>
id
username
password
postal_code
cities =>
postal_code
city_name
私の User モデルには、都市テーブルとの関係を宣言する city() というメソッドがあります。
public function city() {
return $this->hasOne('cities', 'postal_code');
}
問題は、User::with('city')->find($user_id) を実行しようとすると、メソッドに渡される値が postal_code ではなく主キーである ID になることです。
したがって、私のクエリは次のようになります(これはID 1のユーザー用です):
select * from `cities` where `cities`.`postal_code` in ('1')
代わりに postal_code を渡したいと指定する方法はありますか?