Функция Laravel в модели User, которая будет вызываться для User :: all () - PullRequest
0 голосов
/ 24 февраля 2019

Представьте, что у меня есть эта функция в модели пользователя:

public function loadOrderStatus(){
    $this->load(['status' => function ($query) {
        $query->ofTranslatedStatuses();
    }]);
}

Эта функция прекрасно работает для одного экземпляра модели, например: User::first(), но как эту функцию можно использовать с User::all()?

1 Ответ

0 голосов
/ 24 февраля 2019

Вы можете использовать scopeQuery в модели User

public function scopeStatusAll($query)
{
    return $query->with(['status' => function ($query) {
        $query->ofTranslatedStatuses();
    }]);
}

, вызывая его с помощью

User::statusAll()->get();

Или вы можете поместить статическую функцию в модель User

public static function statusAll()
{
    $users = User::all();

    return $users->load(['status' => function ($query) {
        $query->ofTranslatedStatuses();
    }]);
}

позвони с

User::statusAll();
...