Как получить доступ к значению Accessors в withPivot () В Laravel - принадлежит ToMany Relationship - PullRequest
0 голосов
/ 14 февраля 2020

Я добавил один аксессор для форматирования даты.

public function getFormattedDateAttribute()
{
    return Carbon::parse($this->review_date)->format('d M Y');
}

Я хочу получить доступ к этому полю с помощью сводной таблицы

/**
 * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
 */
public function fileGuestReviewers()
{
    return $this->belongsToMany(GuestReviewer::class, 'stage_file_reviewers')
        ->withPivot(['status','formatted_date']);
}

Кроме того, я уже добавил это: protected $appends = ['formatted_date'];

Ошибка получения SQLSTATE[42S22]: Column not found: 1054 Unknown column 'stage_file_reviewers.formatted_date'

1 Ответ

0 голосов
/ 14 февраля 2020

С помощьюPivot () работает со столбцами базы данных, вы определили мутатор, который выполняется после запроса к базе данных. Поэтому вам необходимо включить используемое им базовое свойство.

Для этого вам следует решить эту проблему.

->withPivot(['status','review_date']);

Вы сможете получить доступ к своему полю следующим образом.

$model->fileGuestReviewers->first()->formattedDate;
...