vendredi 26 mai 2017

Get Nested json array of data Laravel Eloquent model with Relationship

I am making social network using laravel where i want to show " 'post' 'comments' 'comment_by' user info in single array with nested relationship

here is my class and database structure

table name and Fields

Members

         ID => primary key,
         name,
         email

Posts

         ID => primary key,
         postText
         fromUserId => foreign key (Members-id)

Comments

         commentText ,
         onPostId = > foreign key (Post-id)
         fromUserId = > foreign key (Members-id)

Eloquent Models

1.Member.php

   class Member extends Model
{
//
}

2.post.php

class post extends Model
{
    //
    public $timestamps = true;

function getUserDetails()
{
    return $this->belongsTo('App\Member', 'fromUserId', 'id');
}

function getCommentDetails()
{
    return $this->hasMany('App\comment', 'onPostId', 'id');
}


}

3.comment.php

class comment extends Model
  {


  }

call for getting array

 $posts=post::with('getUserDetails','getCommentDetails')->get();

*expected output

{  
   "id":1,
   "postType":1,
   "postText":"my name is parth",
   "url":null,
   "likesCount":0,
   "unlikesCount":0,
   "shareCount":0,
   "commentsCount":0,
   "thumbUrl":null,
   "accessMode":1,
   "fromUserId":1,
   "isAdult":1,
   "created_at":null,
   "updated_at":null,
   "get_user_details":{  
      "id":1,
      "name":"parth",
      "email":"parthbhatti95@gmail.com",
      "password":"parth123456",
      "remember_token":"e1b28a30ab467c52924df64034c386d4",
      "created_at":null,
      "updated_at":null
   },
   "get_comment_details":[  
      {  
         "id":1,
         "commentsText":"dccd",
         "onPostId":1,
         "fromUserId":1,
         "created_at":"2017-05-25 16:44:51",
         "updated_at":null
         "commented_by":{  
               "id":1,
               "name":"parth",
               "email":"parthbhatti95@gmail.com",
               "password":"parth123456",
               "remember_token":"e1b28a30ab467c52924df64034c386d4",
               "created_at":null,
               "updated_at":null
             },
      },
      {  
         "id":3,
         "commentsText":"second comment",
         "onPostId":1,
         "fromUserId":1,
         "created_at":"2017-05-26 09:40:51",
         "updated_at":null
         "commented_by":{  
               "id":1,
               "name":"parth",
               "email":"parthbhatti95@gmail.com",
               "password":"parth123456",
               "remember_token":"e1b28a30ab467c52924df64034c386d4",
               "created_at":null,
               "updated_at":null
             },
      },
      {  
         "id":4,
         "commentsText":"second comment",
         "onPostId":1,
         "fromUserId":1,
         "created_at":"2017-05-26 09:41:16",
         "updated_at":null
         "commented_by":{  
               "id":1,
               "name":"parth",
               "email":"parthbhatti95@gmail.com",
               "password":"parth123456",
               "remember_token":"e1b28a30ab467c52924df64034c386d4",
               "created_at":null,
               "updated_at":null
             },
      },
      {  
         "id":5,
         "commentsText":"third one",
         "onPostId":1,
         "fromUserId":1,
         "created_at":"2017-05-26 09:41:43",
         "updated_at":null
         "commented_by":{  
               "id":1,
               "name":"parth",
               "email":"parthbhatti95@gmail.com",
               "password":"parth123456",
               "remember_token":"e1b28a30ab467c52924df64034c386d4",
               "created_at":null,
               "updated_at":null
             },
      }
   ]
}



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2rGSDn7
via IFTTT

Aucun commentaire:

Enregistrer un commentaire