通過此代碼從數(shù)據(jù)庫中獲取數(shù)據(jù):$allTickets = Ticket::with(['user','replies','supporters'])->whereUserId(auth()->user()->id)->get();為我返回這個結(jié)果,它在數(shù)組中有 2 個索引,并且我有supporters關(guān)系的所有這些項目都是相同的,現(xiàn)在我的問題是我如何unique使用collectionsIlluminate\Database\Eloquent\Collection {#1550 ▼ #items: array:2 [▼ 0 => Modules\Ticket\Entities\Ticket {#1548 ▼ #guarded: array:1 [?] #connection: "mysql" #table: "tickets" ... #relations: array:3 [▼ "user" => App\User {#1575 ?} "replies" => Illuminate\Database\Eloquent\Collection {#1565 ?} "supporters" => Illuminate\Database\Eloquent\Collection {#1572 ▼ #items: array:1 [▼ 0 => App\User {#1585 ▼ ... #attributes: array:19 [▼ "id" => 1 "user_id" => null ... "api_token" => "a" "remember_token" => null "deleted_at" => null "created_at" => "2020-06-14 13:56:45" "updated_at" => "2020-06-14 13:56:45" ] ... } ] } ] ... } 1 => Modules\Ticket\Entities\Ticket {#1567 ▼ #guarded: array:1 [?] #connection: "mysql" #table: "tickets" ... #relations: array:3 [▼ "user" => App\User {#1575 ?} "replies" => Illuminate\Database\Eloquent\Collection {#1551 ?} "supporters" => Illuminate\Database\Eloquent\Collection {#1559 ▼ #items: array:1 [▼ 0 => App\User {#1585 ▼ ... #attributes: array:19 [▼ "id" => 1 "user_id" => null ... "api_token" => "a" "remember_token" => null "deleted_at" => null "created_at" => "2020-06-14 13:56:45" "updated_at" => "2020-06-14 13:56:45" ] ... } ] } ] ... } ]}
2 回答

一只名叫tom的貓
TA貢獻1906條經(jīng)驗 獲得超3個贊
不要嘗試在集合上做唯一,嘗試讓你的數(shù)據(jù)已經(jīng)從你的數(shù)據(jù)庫中過濾出來。您可以按任何關(guān)系屬性進行分組,只需傳入一個閉包來處理對急切加載內(nèi)容的查詢,例如:
$allTickets = Ticket::with(['user','replies'])->with([
'supporters' => function($query) {
$query->groupBy('id');
}
])->whereUserId(auth()->user()->id)->get();

慕神8447489
TA貢獻1780條經(jīng)驗 獲得超1個贊
或者您可以這樣查詢:
$allTickets = collect(Ticket::with(['user','replies','supporters'])->whereUserId(auth()->user()->id)->get());
$allUniqueTickets = $allTickets->unique();
$tickets = $allUniqueTickets->values()->all();
這就是您可以輕松地從控制器獲取所有唯一值的方法。我希望這回答了你的問題。
- 2 回答
- 0 關(guān)注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消