У меня есть следующая структура базы данных:Laravel получить одну строку из hasMany Relation
users
________
id
user_fields
________
id
name
user_field_values
________
id
user_id
field_id
value
У меня есть основной hasMany Relation на UserFieldValues, но это выглядит ужасно для меня, особенно потому, что я не хочу, чтобы итерируем целое Отношение только для получения определенного user_field_values.value для определенного user_fields.name.
Итак, что я хочу получить, это user_fields_values.value от текущего пользователя, где user_fields.name =?
Моя идея состоит в том, чтобы сделать toToMany Relation, но я не получаю его на работу.
Я действительно оценил бы вашу помощь.
Решения
Благодаря Lê Чан Тиен Чунг, «нагрузка» была ключевым словом я искал.
public function userFields() {
return $this->belongsToMany('\App\Models\UserFields',"user_field_values", 'user_id', 'field_id')->withPivot('value');
}
public function userField($fieldName) {
$this->load(['userFields' => function($q) use ($fieldName) {
$q->where('slug', '=', $fieldName);
}])->first();
}