TicketResource. php
public function toArray($request) {
return [
'id' => $this->id,
'user_id' => $this->user_id,
'title' => $this->title,
'body' => $this->body,
'status' => $this->status,
'created_at' => $this->created_at->toDateTimeString(),
];
}
CommentResource. php
public function toArray($request) {
return [
'id' => $this->id,
'body' => $this->body,
'user_id' => $this->user_id,
'created_at' => $this->created_at->toDateTimeString()
];
}
TicketController. php
public function index() {
return TicketResource::collection(Ticket::all());
}
public function show(Ticket $id) {
$ticket = $id;
return new TicketResource($ticket);
}
Билет на модель. php
public function comments() {
return $this->hasMany('App\Comment');
}
Комментарий модели. php
public function ticket() {
return $this->belongsTo('App\Ticket');
}
маршруты / API. php
Route::get('tickets', 'TicketController@index');
Route::get('tickets/{id}', 'TicketController@show');
Я хочу, когда я запрашиваю tickets/{id}
URL, я ожидаю получить этот ответ:
{
"data": {
"id": 1,
"user_id": 2,
"title": "lorem",
"body": "epsum",
"status": "open",
"created_at": "2020-03-04 18:14:56",
"comments": [
{
"id": 1,
"body": "equi",
"user_id": 1,
"created_at": "2020-03-05 18:14:56",
}
]
}
}
Наоборот, когда я захожу на tickets
URL, я не хочу, чтобы comments
добавлялось к каждому тикету.
Как я могу это реализовать?