コード例 #1
0
ファイル: BaseEngine.php プロジェクト: rikardote/agenda
 /**
  * Render json response.
  *
  * @param bool $object
  * @return \Illuminate\Http\JsonResponse
  */
 public function render($object = false)
 {
     $output = array_merge(['draw' => (int) $this->request['draw'], 'recordsTotal' => $this->totalRecords, 'recordsFiltered' => $this->filteredRecords], $this->appends);
     if (isset($this->transformer)) {
         $fractal = app('datatables.fractal');
         if ($this->serializer) {
             $fractal->setSerializer(new $this->serializer());
         }
         //Get transformer reflection
         //Firs method parameter should be data/object to transform
         $reflection = new \ReflectionMethod($this->transformer, 'transform');
         $parameter = $reflection->getParameters()[0];
         //If parameter is class assuming it requires object
         //Else just pass array by default
         if ($parameter->getClass()) {
             $resource = new Collection($this->results(), $this->createTransformer());
         } else {
             $resource = new Collection($this->getProcessedData($object), $this->createTransformer());
         }
         $collection = $fractal->createData($resource)->toArray();
         $output['data'] = $collection['data'];
     } else {
         $output['data'] = Helper::transform($this->getProcessedData($object));
     }
     if ($this->isDebugging()) {
         $output = $this->showDebugger($output);
     }
     return new JsonResponse($output);
 }
コード例 #2
0
 /**
  * Render json response.
  *
  * @param bool $object
  * @return \Illuminate\Http\JsonResponse
  */
 public function render($object = false)
 {
     $output = ['draw' => (int) $this->request['draw'], 'recordsTotal' => $this->totalRecords, 'recordsFiltered' => $this->filteredRecords];
     if (isset($this->transformer)) {
         $fractal = new Manager();
         if ($this->request->get('include')) {
             $fractal->parseIncludes($this->request->get('include'));
         }
         $serializer = $this->serializer ?: Config::get('datatables.fractal.serializer', 'League\\Fractal\\Serializer\\DataArraySerializer');
         $fractal->setSerializer(new $serializer());
         //Get transformer reflection
         //Firs method parameter should be data/object to transform
         $reflection = new \ReflectionMethod($this->transformer, 'transform');
         $parameter = $reflection->getParameters()[0];
         //If parameter is class assuming it requires object
         //Else just pass array by default
         if ($parameter->getClass()) {
             $resource = new Collection($this->results(), new $this->transformer());
         } else {
             $resource = new Collection($this->getProcessedData($object), new $this->transformer());
         }
         $collection = $fractal->createData($resource)->toArray();
         $output['data'] = $collection['data'];
     } else {
         $output['data'] = Helper::transform($this->getProcessedData($object));
     }
     if ($this->isDebugging()) {
         $output = $this->showDebugger($output);
     }
     foreach ($this->anotherData as $key => $value) {
         $output[$key] = $value;
     }
     return new JsonResponse($output);
 }
コード例 #3
0
 /**
  * Render json response.
  *
  * @param bool $object
  * @return \Illuminate\Http\JsonResponse
  */
 public function render($object = false)
 {
     $processor = new DataProcessor($this->results(), $this->columnDef, $this->templates);
     $data = $processor->process($object);
     $output = ['draw' => (int) $this->request['draw'], 'recordsTotal' => $this->totalRecords, 'recordsFiltered' => $this->filteredRecords];
     if (isset($this->transformer)) {
         $fractal = new Manager();
         $resource = new Collection($data, new $this->transformer());
         $collection = $fractal->createData($resource)->toArray();
         $output['data'] = $collection['data'];
     } else {
         $output['data'] = Helper::transform($data);
     }
     if ($this->isDebugging()) {
         $output = $this->showDebugger($output);
     }
     return new JsonResponse($output);
 }
コード例 #4
0
 public function test_transform()
 {
     $data = [['id' => 1, 'author' => 'John', 'created_at' => Carbon::createFromFormat('Y-m-d H:i:s', '2015-1-1 00:00:00')], ['id' => 2, 'author' => 'Billy', 'created_at' => Carbon::createFromFormat('Y-m-d H:i:s', '2015-1-1 00:00:00')]];
     $result = Helper::transform($data);
     $expected = [['id' => 1, 'author' => 'John', 'created_at' => '2015-01-01 00:00:00'], ['id' => 2, 'author' => 'Billy', 'created_at' => '2015-01-01 00:00:00']];
     $this->assertEquals($expected, $result);
 }