ArraySerializer
类use League\Fractal\Serializer\ArraySerializer;
class HotelArraySerializer extends ArraySerializer {
/** * Serialize a collection. * * @param string $resourceKey * @param array $data * * @return array */
public function collection($resourceKey, array $data) {
return ['hotels' => $data];
}
/** * Serialize an item. * * @param string $resourceKey * @param array $data * * @return array */
public function item($resourceKey, array $data) {
return ['hotels' => $data];
}
/** * Serialize null resource. * * @return array */
public function null() {
return ['hotels' => []];
}
}
复制代码
/** * 酒店基础信息接口 * @param Request $request * @return string */
public function getFullHotelInfo(Request $request) {
$skip = $request->get("param.skip", 3);
$limit = $request->get("param.limit", 10);
$paginator = Hotel::query()->paginate($limit, ['*'], 'skip', $skip);
$datas = fractal($paginator->getCollection(), HotelTransformer::class, HotelArraySerializer::class);
return $this->service->encrypt_openssl($this->json($datas), 'AES-128-ECB', $this->key);
}
复制代码
若是直接使用League
包也是同样的,将本身的Serializers
引入便可laravel
use Acme\Transformer\BookTransformer;
use League\Fractal;
$resource = new Fractal\Resource\Item($book, new BookTransformer);
$resource = new Fractal\Resource\Collection($books, new BookTransformer);
复制代码