Я построил систему обмена сообщениями между двумя пользователями, и мне нужно иметь возможность идентифицировать аутентифицированного пользователя в красноречивом выводе JSON.
Контроллер разговора
public function show(Conversation $conversation)
{
$conversation->load('participants');
$messages = $conversation->messages()->with('sender')->latest()->take(5)->get()->sortBy('created_at');
return $messages->toArray();
}
Модель разговора
public function participants(){
return $this->belongsToMany('App\User' ,'conversation_participants','conversation_id','user_id');
}
Выход JSON
{
"1":{
"id":59,
"body":"Hi, what's up",
"conversation_id":11,
"sender_id":1,
"type":"user_message",
"created_at":"2018-10-01 23:43:07",
"updated_at":"2018-10-01 23:43:07",
"sender":{
"id":1,
"username":"Jim",
"slug":"Jim",
"name":"Jim",
}
},
"0":{
"id":60,
"body":"Hi there",
"conversation_id":11,
"sender_id":1,
"type":"user_message",
"created_at":"2018-10-01 23:43:20",
"updated_at":"2018-10-01 23:43:20",
"sender":{
"id":1,
"username":"Reggie",
"slug":"reggie",
"name":"Reggie",
}
}
}
Итак, допустим, я вошел как «Джим». Я хотел бы, чтобы в выводе JSON был какой-то идентификатор, например, свойство "logged_in":"1"
, в качестве идентификатора, показывающего, что Джим является вошедшим в систему пользователем, и "logged_in":"0"
дляshow Reggie - это не зарегистрированный пользователь:
{
"1":{
"id":59,
"body":"Hi, what's up",
"conversation_id":11,
"sender_id":1,
"type":"user_message",
"created_at":"2018-10-01 23:43:07",
"updated_at":"2018-10-01 23:43:07",
"sender":{
"id":1,
"username":"Jim",
"slug":"Jim",
"name":"Jim",
"logged_in":"1"
}
},
"0":{
"id":60,
"body":"Hi there",
"conversation_id":11,
"sender_id":1,
"type":"user_message",
"created_at":"2018-10-01 23:43:20",
"updated_at":"2018-10-01 23:43:20",
"sender":{
"id":1,
"username":"Reggie",
"slug":"reggie",
"name":"Reggie",
"logged_in":"0"
}
}
}
Как мне это сделать?
Примечание Идентификатор не требуется, не нужнобыть в объекте "отправитель".