[英]“message”: “Undefined property: Illuminate\Database\Query\Builder::$map”
[英]Laravel Resource Collection: "Undefined property: Illuminate\\Database\\Query\\Builder::$map"
我目前正在試用 Laravel 資源。 單一資源工作正常。 但是 Resource Collection 拋出以下錯誤:
“未定義的屬性:Illuminate\Database\Query\Builder::$map”
UserController.php
use App\Http\Resources\UserResource;
use App\Http\Resources\UserCollection;
use App\Models\User;
class UserController extends Controller
{
public function index()
{
return [
'success' => true,
'data' => new UserCollection(User::all())
];
}
public function show(User $user)
{
return [
'success' => true,
'data' => new UserResource($user)
];
}
}
UserCollection.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class UserCollection extends ResourceCollection
{
public function toArray($request)
{
$count = $this->collection->count();
return [
'count' => $count,
'data' => $this->collection
];
}
}
錯誤顯然來自這一行: 'data' => $this->collection
。 我懷疑 $this->collection 遍歷用戶集合。 如果我 dd($this->collection) 我正確地從數據庫中獲取了所有 51 個項目。 從數據庫:
output dd($this->collection) inside resource collection)
Illuminate\Support\Collection {#1380 ▼ //
app/Http/Resources/UserCollection.php:18
#items: array:51 [▶]
#escapeWhenCastingToString: false
}
我必須改變什么才能讓它發揮作用? 提前致謝,邁克!
我想你想要這樣的東西?
return [
'count' => $count,
'data' => UserResource::collection($this->collection)
];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.