Просто хотел узнать, можно ли загружать определенный аксессор в репозиторий 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",
}
использование $appends
в вашей модели UserInfo.php
protected $appends = ['full_name'];
Это добавит это настраиваемое поле в вашу коллекцию.
Тогда вы можете увидеть это здесь:
$user_infos = UserInfo::all();
$user_infos->toJson();
Вы можете увидеть добавленный аксессор в JSON.
Других решений пока нет …