Лично я предпочитаю использовать ресурсы API . Таким образом, вы всегда имеете полный контроль над возвращаемыми данными.
Пример:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\Resource;
class VehicleEntryResource extends Resource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => (int) $this->resource->id,
// Watch out with this. Make sure the vehicle relation is loaded.
// Otherwise it will always add this execute another query for
// every vehicle entry you send to this class, would be bad when
// you want to send multiple. You could also use
// $this->whenLoaded('vehicle'), however this needs another
// resource.
'vehicle' => [
'id' => (int) $this->resource->vehicle->id,
'plate' => $this->resource->vehicle->plate,
],
'created_at' => $this->resource->created_at,
];
}
}
Теперь вы можете называть это где угодно:
new VehicleEntryResource($vehicleEntry);
Не уверен, что сообщения Pusher работают так же хорошо, как JsonResponse
, который вы обычно возвращали бы в вашем контроллере. При возврате в ответ он автоматически конвертирует их в массивы. Но вы также можете сделать следующее, чтобы получить представление массива:
(new VehicleEntryResource($vehicleEntry))->toArray(null);