Laravel с использованием аксессора для возврата названия страны из кода страны - PullRequest
2 голосов
/ 24 января 2020

У меня есть таблица, в которой есть country_code и country_name.

У каждого пользователя в моей базе данных есть код страны в своей учетной записи. То, что я хочу сделать, - это автоматически возвращать название страны вместо кода страны для этого пользователя.

Я установил аксессор в моей модели User, но, похоже, он не работает.

public function getCountryCodeAttribute($value): string
{
    return Country::firstWhere('country_code', $value)->get('country_name');
}

Он продолжает возвращать country_code

Любая помощь будет великолепна

1 Ответ

2 голосов
/ 24 января 2020

Вы работаете с QueryBuilder (), который возвращает вашу модель. Чтобы получить доступ к свойству модели, просто получите к нему доступ, поскольку оно было свойством.

return Country::firstWhere('country_code', $value)->country_name;

Для предоставления его конечной точке используйте свойство добавления модели пользователя, где вы можете добавлять настраиваемые установщики Eloquent в сериализацию. .

class User {
    protected $appends = [
        'country_code',
    ];
}
...