Laravel 6 - добавитель доступа не вызывается в отношениях - PullRequest
0 голосов
/ 23 февраля 2020

Я использую Laravel 6 и я хочу получить доступ к атрибуту аватара от пользователя, когда я использую отношение posts ().

Модель пользователя:

/**
 * @var array
 */
protected $appends = [
    'avatar',
];

/**
 * @return HasMany
 */
public function posts(): HasMany
{
    return $this->hasMany(Post::class);
}

/**
 * @return string
 */
public function getAvatarAttribute(): string
{
    return sprintf('https://secure.gravatar.com/avatar/%s?s=500', md5($this->email));
}

Код моего контроллера:

$topic = Topic::where('slug', $slug)->firstOrFail();

foreach ($topic->posts()->get() as $post) {
    dd($post->user->avatar); // return null
}

Почтовая модель:

/**
 * @return BelongsTo
 */
public function user(): BelongsTo
{
    return $this->belongsTo(User::class);
}

Я получаю имя пользователя с $post->user->name, но атрибут аватара не вызывается.

...