Ho l'API che funziona utilizzando il processo standard, ma voglio rimuovere lo spazio dei nomi data
dall'output JSON. Vedo che ho bisogno di implementare ArraySerializer, ho passato i documenti Fractal, ma non riesco a capire dove devo aggiungerlo in Laravel 5.2Tentativo di rimuovere i dati in Fractal implementando ArraySerializer in Laravel 5.2
Ho trovato this answer ma ho appena ottenuto lo stesso risultato linea di codice che ho commentata:
class TrackController extends ApiController
{
public function index()
{
$tracks = Track::all();
//return $this->respondWithCollection($tracks, new TrackTransformer);
// Same response as the commented out line above
$response = new \League\Fractal\Resource\Collection($tracks, new TrackTransformer);
$manager = new \League\Fractal\Manager();
$manager->setSerializer(new \League\Fractal\Serializer\ArraySerializer());
return response()->json($manager->createData($response)->toArray());
}
public function show($id)
{
$track = Track::find($id);
return $this->respondWithItem($track, new TrackTransformer);
}
}
Inoltre, sto applicazione del presente su un controller specifico, anche se ho ottenuto questo lavoro, in cui si aggiunge il codice/class in modo da poter ottenere l'output ArraySerializer per tutta la mia i controllori?
ho posted this on Github se questo aiuta.
prima impressione, penso che si dovrebbe spostare '$ response = new \ lega \ Frattale \ Resource \ Collection ($ tracce, nuovo TrackTransformer);' dopo hai impostato il serializzatore –
Dove lo sposterei? –
'$ manager = new \ League \ Fractal \ Manager(); $ manager-> setSerializer (nuovo \ League \ Fractal \ Serializer \ ArraySerializer()); $ response = new \ League \ Fractal \ Resource \ Collection ($ tracks, new TrackTransformer); ' –