2017-05-02 12 views
0

私は、さまざまなユーザーによって作成されたコンテンツがたくさんあるコンテンツテーブルを持っています...コンテンツがログインしているユーザーによって作成されているかどうかを確認しようとしています新しいキー値のペアをレスポンスに追加します。したがって、コンテンツがuser_id 1で作成され、私がユーザー1の場合、レスポンスにはコンテンツオブジェクトのisOwn:1などのフィールドがありますが、他の誰かによって作成されました。Laravel - idsが同じ場合にキー/値をレスポンスに追加

これは私が持っている基準です:

$query = $model->select('contents.*', 'status_types.name as status', 'content_types.name as content_type') 
         ->join('status_types', 'status_types.id', '=', 'contents.status_type_id') 
         ->join('content_types', 'content_types.id', '=', 'contents.content_type_id') 
         ->with('platforms') 
         ->with('classifications') 
         ->withCount(['favorite' => function ($q) { 
          $q->where('user_id', '=', $this->request->user()->getIdentifier()); 
         }]) 
         ->withCount('likes') 
         ->inRandomOrder(); 

     return $query; 

私は、いつ、whereExistを使用しようとしたが、これは私に、ユーザーが作成したものだけを返し、ない条件が真である場合。

アイデア?前もって感謝します。

答えて

0

あなたがモデルに参加し、合計クエリのどこを行う必要があります。

$query = $model->select('contents.*', 'status_types.name as status', 'content_types.name as content_type') 
         ->join('status_types', 'status_types.id', '=', 'contents.status_type_id') 
         ->join('content_types', 'content_types.id', '=', 'contents.content_type_id') 
         ->join('favorites', 'favorites.contents_id', '=', 'contents.id') // or whatever the relation is 
         ->with(['platforms', 'classifications']) 
         ->withCount(['favorite']) 
         ->withCount('likes') 
         ->where('favorites.user_id', '=', $this->request->user()->getIdentifier()) 
         ->inRandomOrder(); 

     return $query; 
関連する問題