簡體   English   中英

“屬性 [id] 在 Eloquent 構建器實例上不存在。”,laravel 8 Api 資源

[英]"Property [id] does not exist on the Eloquent builder instance.", laravel 8 Api Resource

在 CONTROLLER;

public function index()
{
    $conversations = Conversation::where('user_id',auth()->user()->id)->orWhere('second_user_id',auth()->user()->id);
    
    $count = $conversations->get()->count();

    //
    for($i=0;$i<$count;$i++) {
        for ($j = $i + 1; $j < $count; $j++) {
            if ($conversations[$i]->messages->last()->id < $conversations[$j]->messages->last()->id) {
                $temp = $conversations[$i];
                $conversations[$i] = $conversations[$j];
                $conversations[$j] = $temp;
            }
        }
    }

 //  return  ConversationResource::collection($conversations);
 return  new ConversationResource($conversations);
}

應用\Http\Resources\ConversationResource;


public function toArray($request)
{
  return [
    'id'=> $this->id,
    'created_at'=>$this->created_at,
    'message'=>MessageResource::collection($this->messages),
  ];
}

使用 App\Http\Resources\ConversationResource;

public function toArray($request)
{
    return parent::toArray($request);``
}

更改此行:

$conversations = Conversation::where('user_id',auth()->user()->id)->orWhere('second_user_id',auth()->user()->id);

為此(最后添加get() ):

$conversations = Conversation::where('user_id',auth()->user()->id)->orWhere('second_user_id',auth()->user()->id)->get();

並更改$count

$count = $conversations->count();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM