私はlaravelに本当に慣れていないので、何か間違ったことをしていると確信しています
私は2つのテーブルを持っています。Cities
とusers_metadata
私の都市テーブルは次のようになります
id | City |
1 | New York |
1 | Los Angeles |
ユーザーのメタデータ
user_id | firt name | last name | cities_id |
1 | Jonh | Doe | 2 |
だから私の問題は、都市IDがユーザーIDと一致するため、ニューヨークを取得するリレーションを作成するときです
都市モデル
class City extends Eloquent
{
public static $table = "cities";
public function profile()
{
return static::has_many('Profile');
}
}
プロファイル モデル
class Profile extends Eloquent
{
public static $timestamps = false;
public static $table = "users_metadata";
public static $key = "user_id";
public function city()
{
return static::has_one('City');
}
}
エラー
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'profile_id' in 'where clause'
SQL: SELECT * FROM `cities` WHERE `profile_id` = ? LIMIT 1
Bindings: array (
0 => 1,
)
ID を has one に渡さないと、次のエラーが表示されます
わかりました。
だから私の質問はcities_id
、私の関係で何らかの形で外部キーを渡して一致させることができますか? それとも私はそれをすべて間違っていますか?誰かが私に基本的な例を教えてもらえますか?
ありがとうございます