查询与内部联接返回错误的ID

问题描述:

更新末查询与内部联接返回错误的ID

我有这个API iOS的社交媒体应用程序在Laravel建造和我一直有与进料段,雄辩的问题Feed的代码给了我每个帖子的错误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在YouTube上),我想是因为我在说文章::加入(“clase_user”,任何想法,也包括后期的标识?

clase_user

+0

在这个部分,我只写 - > dd($ user-> id)?为什么,我想返回帖子ID不是用户ID,我已经拥有它的用户ID(顺便说一句,我更新了帖子),感谢您的帮助思想;) –

类似到这一个:Join with where query in Laravel returns wrong timestamps

由于你的JOIN,属性被覆盖(不仅是id,还有created_at/updated_at时间戳)。因此你应该为你的特定属性定义一个select语句。