Я действительно новичок в 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 |
Итак, моя проблема в том, что когда я создаю отношение, я получаю Нью-Йорк, потому что идентификатор города совпадает с идентификатором пользователя.
Модель города
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,
)
Если я не передам идентификатор, я получаю следующую ошибку
Хорошо, я понимаю это.
Итак, мои вопросы: могу ли я каким-то образом передать внешний ключ cities_id
в моем отношении к совпадению? Или я все делаю не так? Может ли кто-нибудь дать мне простой пример?
спасибо, ребята