Overview

Namespaces

  • None
  • Yajra
    • Datatables
      • Contracts
      • Engines
      • Facades
      • Generators
      • Html
      • Processors
      • Services
      • Transformers

Classes

  • Yajra\Datatables\Datatables
  • Yajra\Datatables\DatatablesServiceProvider
  • Yajra\Datatables\Engines\BaseEngine
  • Yajra\Datatables\Engines\CollectionEngine
  • Yajra\Datatables\Engines\EloquentEngine
  • Yajra\Datatables\Engines\QueryBuilderEngine
  • Yajra\Datatables\Facades\Datatables
  • Yajra\Datatables\Generators\DataTablesMakeCommand
  • Yajra\Datatables\Generators\DataTablesScopeCommand
  • Yajra\Datatables\Helper
  • Yajra\Datatables\Html\Builder
  • Yajra\Datatables\Html\Column
  • Yajra\Datatables\Html\Parameters
  • Yajra\Datatables\Processors\DataProcessor
  • Yajra\Datatables\Processors\RowProcessor
  • Yajra\Datatables\Request
  • Yajra\Datatables\Services\DataTable
  • Yajra\Datatables\Transformers\DataTransformer

Interfaces

  • Yajra\Datatables\Contracts\DataTableButtonsContract
  • Yajra\Datatables\Contracts\DataTableContract
  • Yajra\Datatables\Contracts\DataTableEngineContract
  • Yajra\Datatables\Contracts\DataTableScopeContract

Functions

  • config_path
  • public_path
  • Overview
  • Namespace
  • Class
 1: <?php
 2: 
 3: namespace Yajra\Datatables\Transformers;
 4: 
 5: use Illuminate\Support\Collection;
 6: 
 7: /**
 8:  * Class DataTransformer.
 9:  *
10:  * @package Yajra\Datatables\Transformers
11:  * @author  Arjay Angeles <aqangeles@gmail.com>
12:  */
13: class DataTransformer
14: {
15:     /**
16:      * Transform row data by columns definition.
17:      *
18:      * @param array $row
19:      * @param mixed $columns
20:      * @param string $type
21:      * @return array
22:      */
23:     public function transform(array $row, $columns, $type = 'printable')
24:     {
25:         if ($columns instanceof Collection) {
26:             return $this->buildColumnByCollection($row, $columns, $type);
27:         }
28: 
29:         return array_only($row, $columns);
30:     }
31: 
32:     /**
33:      * Transform row column by collection.
34:      *
35:      * @param array $row
36:      * @param \Illuminate\Support\Collection $columns
37:      * @param string $type
38:      * @return array
39:      */
40:     protected function buildColumnByCollection(array  $row, Collection $columns, $type = 'printable')
41:     {
42:         $results = [];
43:         foreach ($columns->all() as $column) {
44:             if ($column[$type]) {
45:                 $title = $column['title'];
46:                 $data  = array_get($row, $column['data']);
47:                 if ($type == 'exportable') {
48:                     $data  = $this->decodeContent($data);
49:                     $title = $this->decodeContent($title);
50:                 }
51: 
52:                 $results[$title] = $data;
53:             }
54:         }
55: 
56:         return $results;
57:     }
58: 
59:     /**
60:      * Decode content to a readable text value.
61:      *
62:      * @param string $data
63:      * @return string
64:      */
65:     protected function decodeContent($data)
66:     {
67:         try {
68:             $decoded = html_entity_decode(strip_tags($data), ENT_QUOTES, 'UTF-8');
69: 
70:             return str_replace("\xc2\xa0", ' ', $decoded);
71:         } catch (\Exception $e) {
72:             return $data;
73:         }
74:     }
75: }
76: 
API documentation generated by ApiGen