У меня есть таблица групп, таблица сообщений и таблица пользователей.
Таблица сообщений принадлежит одному пользователю и превращается в группу.
таблица групп принадлежит одному пользователю и сообщениям morphMany.
Я хочу получить все группы, связанные с одним пользователем, с последними сообщениями "только последнее сообщение".
`users Model`
public function messages(){
return $this->hasMany('App\Message');
}
public function groups(){
return $this->belongsToMany('App\Group', 'group_user');
}
`Groups Model`
public function user(){
return $this->belongsTo('App\User');
}
public function messages(){
return $this->morphMany('App\Message', 'messagable');
}
`messages model`
public function user(){
return $this->belongsTo('App\User');
}
public function messagable(){
return $this->morphTo();
}
Я хочу, чтобы результат был таким:
{
"id": 23,
"user_id": 2,
"name": "Group1",
"description": "5656",
"img": "images/1524958644.png",
"created_at": "2018-04-28 23:37:24",
"updated_at": "2018-04-28 23:37:24",
"last_messages":{
"id": 292,
"user_id": 1,
"messagable_type": "App\\Group",
"messagable_id": 23,
"message": "hi",
"created_at": "2018-04-29 07:48:55",
"updated_at": "2018-04-29 07:48:55"
}
}