用户模型中的Laravel函数将被User :: all()调用

时间:2019-02-24 15:46:04

标签: php laravel eloquent relationship

想象一下我在用户模型中具有此功能:

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

此功能对于单个模型实例(如User::first())正常工作 但是如何将此功能与User::all()一起使用?

1 个答案:

答案 0 :(得分:2)

您可以在用户模型中使用scopeQuery

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

致电

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

或者您可以在用户模型中放置一个静态函数

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

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

致电

User::statusAll();