Добавить пользовательский атрибут при получении модели - PullRequest
0 голосов
/ 03 октября 2018

Можно ли прикрепить пользовательский атрибут при извлечении модели в laravel?.

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

Пример: у меня есть таблица приложения.Каждое приложение содержит папку с документами с одинаковым идентификатором приложения.Мне нужно приложить количество файлов к папке, которые соответствуют каждому приложению.

Вот что я делаю:

$application = Application::get();
$application = $application->map(function($a){
    $a->files = $this->getFiles($a->id); // This gets the amount of files
    return $a;
})

Есть ли способ сделать это в модели таким образом,что $application->files уже содержится в $application при выполнении Application::get()

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

в модели приложения

public function getFilesAttribute()
{
    return 'lala'; // return whatever you need;
}

теперь модель приложения имеет атрибут с именем files.

$application->files // returns lala.

пример кода.

$applications = Application::get();
$application_files = applications->map->files;

официальная документацияhttps://laravel.com/docs/5.7/eloquent-mutators#defining-an-accessor

0 голосов
/ 03 октября 2018
class User extends Model
{
    public function getFooBarAttribute()
    {
        return "foobar";
    }
}

И доступ к этому атрибуту, как:

$user->foo_bar;

или как,

$user->fooBar;

Более подробная документация;https://laravel.com/docs/5.7/eloquent-mutators#defining-an-accessor

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...