【问题标题】: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();