【问题标题】:Laravel function in User model that will be called for User::all()User 模型中的 Laravel 函数,将为 User::all() 调用
【发布时间】:2019-02-24 15:46:04
【问题描述】:

想象一下我在用户模型中有这个功能:

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

此功能适用于单个模型实例,例如:User::first() 但是这个函数如何与 User::all() 一起使用?

【问题讨论】:

    标签: php laravel eloquent relationship


    【解决方案1】:

    您可以在 User 模型中使用 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();
    

    【讨论】:

      猜你喜欢
      • 2020-05-23
      • 2010-09-14
      • 1970-01-01
      • 2015-03-02
      • 2017-03-29
      • 2021-10-02
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多