У меня есть две таблицы users
и user_profiles
со следующей схемой
Таблица пользователей
- id
- имя пользователя
- email
- пароль
- роль
- is_ root
- create_at
- updated_at
Таблица профилей пользователей
- id
- user_id (FK -> users -> id)
- key
- значение
User Модальный
public function profileData()
{
return $this->hasMany(UserProfile::class);
}
UserProfile Модальный
public function user()
{
return $this->belongsTo(User::class);
}
Поэтому, если я использую $user->profileData
, это дает мне этот результат, который является правильным.
=> Illuminate\Database\Eloquent\Collection {#3244
all: [
App\UserProfile {#3251
id: 3,
user_id: 10,
key: "country",
value: "India",
},
App\UserProfile {#3242
id: 1,
user_id: 10,
key: "first_name",
value: "John",
},
App\UserProfile {#3252
id: 2,
user_id: 10,
key: "last_name",
value: "Doe",
},
],
}
Вопрос
Однако я хочу получить значение / данные поля value
из таблицы user_profiles
, указав значение поля key
по идентификатору пользователя. Например, если я передам country
, он должен вернуть India
или first_name
, тогда John
в приведенном выше примере. Как этого добиться?