我正在使用Laravel Spark開發API端點。Laravel Eloquent - 通過用戶模型中的方法來訂購用戶關係
此端點將給定團隊及其用戶返回。
// in App\Team
public function users()
{
return $this->belongsToMany(
'App\User', 'team_users', 'team_id', 'user_id'
)->withPivot('role');
}
但是,我希望通過在用戶模型上的方法來訂購這些用戶。
我的應用程序\ User模型我有一個方法:
public function currentQueueLength()
{
returns an integer based upon the users current appointments,
}
有什麼辦法,我可以返回用戶的關係,但通過該方法的結果訂購的用戶?
「User :: currentQueueLength()」做了什麼? – haakym
@haakym運行一個可怕的循環來計算用戶服務的總時間。用戶是一名理髮師,可以有許多指定服務的約會。有各種模型關係,但該方法返回整數分鐘。通常稱爲例如$ user-> currentQueueLength() – Lovelock
陷阱。我的第一個想法是,你可以使用'$ appends'屬性和一個訪問器方法來預加載'currentQueueLength()'作爲'User'模型的一個屬性,然後通過'Team :: users() '電話。這種方法的問題在於,它聽起來像'currentQueueLength()'是一個代價高昂的操作(基於你的最後一條評論,是嗎?),所以理想情況下,這是你可以有條件地做的事情。也許重構你的'currentQueueLength()'可能是第一步? – haakym