Репозиторий Laravel активно загружает предопределенный метод доступа

Просто хотел узнать, можно ли загружать определенный аксессор в репозиторий Laravel. Я в настоящее время использую это l5-хранилище пакет и Laravel 5.4.

В моем UserInfo.php модель, у меня есть эта функция

public function getFullNameAttribute()
{
return ucfirst($this->first_name . " ". $this->last_name);
}

Затем я пытаюсь загрузить этот аксессор в мой контроллер следующим образом.

$user_infos = $this->repository->with('full_name')->all();
// or $user_infos = $this->repository->with('getFullNameAttribute')->all();
return response()->json([ 'data' => $user_infos ]);

Я знаю, что это не сработает. Я просто ищу похожий способ добавить свой аксессор full_name в моей коллекции. Так что мне не нужно объединять в моей передней части. Так что мой ожидаемый результат будет

{
id : 1,
first_name : "Sample fname",
last_name : "Sample lname",
.....
.....
full_name : "Sample fname Sample lname",
}

0

Решение

использование $appends в вашей модели UserInfo.php

protected $appends = ['full_name'];

Это добавит это настраиваемое поле в вашу коллекцию.

Тогда вы можете увидеть это здесь:

$user_infos = UserInfo::all();
$user_infos->toJson();

Вы можете увидеть добавленный аксессор в JSON.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector