@Djonson86
Нечем похвастаться.

Как добавить дополнительные поля в модель через мутаторы?

Здравствуйте. Надо сделать так, чтоб на выходе до модели юзера добавлять дополнительные поля, при этом чтоб они добавлялись в отдельную коллекцию, не напрямую в модель. Пытаюсь это сделать мутаторами.
В моделе:
protected $appends = ['additional'];

public function getAdditionalAttribute()
    {
        return collect();
    }

public function getSomeOptionAttribute()
    {
        //some code
        
        return $this->additional['some_option'] = true;
    }


Потом в контролере на обьекте юзера вызываю этот мутатор
$user->append('some_option');

В итоге это some_option попадает в саму модель юзера, а не коллекцию additional в ней.
Как сделать так, чтоб попадало в эту коллекцию?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
public function getAdditionalAttribute(): Collection
{
    return collect([
        'some_option' => true,
   ]);
}


$user->append('additional');
(а из модели $appends убрать, раз явно его вызываете)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы