2017-08-25 5 views
0

更新クエリは

は私が持っているのiOSにおけるソーシャルメディアアプリのため、このAPIはLaravelに建て終わりに返します間違ったIDに参加して、私は給電部、雄弁で問題が発生してきましたフィードのコードは私にそれぞれの投稿の間違ったIDを与えています。

public function feed(){ 

     if (request()->has('page')) { 

      $pagesize = 20; 

      $query = Posts::join('clase_user', function ($join) { 

       $user = JWTAuth::parseToken()->authenticate(); 

       $join->on('clase_user.clase_id', '=', 'posts.clase_id') 
        ->where('clase_user.user_id', '=', $user->id); 
      }) 
       ->with('user') 
       ->skip(((int)request()->get('page') - 1) * $pagesize) 
       ->take($pagesize)->get(); 

      return $query; 
     }else{ 
      return response()->json(['error' => 'Page not specified'], 500); 
     } 

    } 

リターンはこれです:

{ 
    "posts": [ 
     { 
      "id": 3, 
      "user_id": 1, 
      "clase_id": 1, 
      "thumbNail": null, 
      "text": "Hola Chicos", 
      "archivo": null, 
      "created_at": "2017-07-20 00:00:00", 
      "updated_at": "2017-07-20 00:00:00", 
      "user": { 
       "id": 1, 
       "name": "Juan Carlos", 
       "about": "Hola me llamo Juan Carlos", 
       "handler": "Juantvz50", 
       "pp": null, 
       "verify": 1, 
       "email": "[email protected]", 
       "deleted_at": null, 
       "LoginId": null, 
       "created_at": "2017-07-20 23:52:28", 
       "updated_at": "2017-07-20 23:52:28" 
      } 
     }, 
     { 
      "id": 1, 
      "user_id": 1, 
      "clase_id": 2, 
      "thumbNail": null, 
      "text": "Que pex Prrrro", 
      "archivo": null, 
      "created_at": "2017-07-20 00:00:00", 
      "updated_at": "2017-07-20 00:00:00", 
      "user": { 
       "id": 1, 
       "name": "Juan Carlos", 
       "about": "Hola me llamo Juan Carlos", 
       "handler": "Juantvz50", 
       "pp": null, 
       "verify": 1, 
       "email": "[email protected]", 
       "deleted_at": null, 
       "LoginId": null, 
       "created_at": "2017-07-20 23:52:28", 
       "updated_at": "2017-07-20 23:52:28" 
      } 
     }, 
     { 
      "id": 3, 
      "user_id": 1, 
      "clase_id": 1, 
      "thumbNail": null, 
      "text": "Que Onda Chicos", 
      "archivo": null, 
      "created_at": "2017-07-20 00:00:00", 
      "updated_at": "2017-07-20 00:00:00", 
      "user": { 
       "id": 1, 
       "name": "Juan Carlos", 
       "about": "Hola me llamo Juan Carlos", 
       "handler": "Juantvz50", 
       "pp": null, 
       "verify": 1, 
       "email": "[email protected]", 
       "deleted_at": null, 
       "LoginId": null, 
       "created_at": "2017-07-20 23:52:28", 
       "updated_at": "2017-07-20 23:52:28" 
      } 
     } 
    ] 
} 

私のデータベースには、それぞれに異なるIDを持っているにもかかわらず:

Database

何かが私の一部に間違っているように見えますコード、私はあなたがコメントで尋ねるより多くのコードを見たいと思っている場合、どの部分にわからない。

UPDATE

それは実際に私に私はあなたが誰かをフォローするときのようなユーザー(と多くのクラスに多くを結合するために使用して、ピボットテーブルでテーブルのID clase_userをさ与えるのID )ユーチューブ上で、私が思うに、私は投稿は::(「clase_user」に参加言っているので、任意のアイデアもポストのIDを含めることがありますか?

clase_user

+0

私はちょうど - > dd($ user-> id)と書いていますか?なぜ、私は、ユーザーid、私はすでにそれを持っている(私はポストを更新したbtw)、助けの思考のための感謝の投稿IDを返すしたい) –

答えて

0

同様Join with where query in Laravel returns wrong timestamps

あなたのJOINのため、属性はオーバーライドされています(idだけでなくcreated_at/updated_atタイムスタンプも)。したがって、特定の属性に対してselect文を定義する必要があります。