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;
  4: 
  5: use Illuminate\Database\Query\Builder as QueryBuilder;
  6: use Illuminate\Support\Collection;
  7: use Yajra\Datatables\Engines\CollectionEngine;
  8: use Yajra\Datatables\Engines\EloquentEngine;
  9: use Yajra\Datatables\Engines\QueryBuilderEngine;
 10: 
 11: /**
 12:  * Class Datatables.
 13:  *
 14:  * @package Yajra\Datatables
 15:  * @method  EloquentEngine eloquent($builder)
 16:  * @method  CollectionEngine collection(Collection $builder)
 17:  * @method  QueryBuilderEngine queryBuilder(QueryBuilder $builder)
 18:  * @author  Arjay Angeles <aqangeles@gmail.com>
 19:  */
 20: class Datatables
 21: {
 22:     /**
 23:      * Datatables request object.
 24:      *
 25:      * @var \Yajra\Datatables\Request
 26:      */
 27:     public $request;
 28: 
 29:     /**
 30:      * Datatables builder.
 31:      *
 32:      * @var mixed
 33:      */
 34:     public $builder;
 35: 
 36:     /**
 37:      * Datatables constructor.
 38:      *
 39:      * @param \Yajra\Datatables\Request $request
 40:      */
 41:     public function __construct(Request $request)
 42:     {
 43:         $this->request = $request->request->count() ? $request : Request::capture();
 44:     }
 45: 
 46:     /**
 47:      * Gets query and returns instance of class.
 48:      *
 49:      * @param  mixed $builder
 50:      * @return mixed
 51:      */
 52:     public static function of($builder)
 53:     {
 54:         $datatables          = app(\Yajra\Datatables\Datatables::class);
 55:         $datatables->builder = $builder;
 56: 
 57:         if ($builder instanceof QueryBuilder) {
 58:             $ins = $datatables->usingQueryBuilder($builder);
 59:         } else {
 60:             $ins = $builder instanceof Collection ? $datatables->usingCollection($builder) : $datatables->usingEloquent($builder);
 61:         }
 62: 
 63:         return $ins;
 64:     }
 65: 
 66:     /**
 67:      * Datatables using Query Builder.
 68:      *
 69:      * @param \Illuminate\Database\Query\Builder $builder
 70:      * @return \Yajra\Datatables\Engines\QueryBuilderEngine
 71:      */
 72:     public function usingQueryBuilder(QueryBuilder $builder)
 73:     {
 74:         return new QueryBuilderEngine($builder, $this->request);
 75:     }
 76: 
 77:     /**
 78:      * Datatables using Collection.
 79:      *
 80:      * @param \Illuminate\Support\Collection $builder
 81:      * @return \Yajra\Datatables\Engines\CollectionEngine
 82:      */
 83:     public function usingCollection(Collection $builder)
 84:     {
 85:         return new CollectionEngine($builder, $this->request);
 86:     }
 87: 
 88:     /**
 89:      * Datatables using Eloquent.
 90:      *
 91:      * @param  mixed $builder
 92:      * @return \Yajra\Datatables\Engines\EloquentEngine
 93:      */
 94:     public function usingEloquent($builder)
 95:     {
 96:         return new EloquentEngine($builder, $this->request);
 97:     }
 98: 
 99:     /**
100:      * Allows api call without the "using" word.
101:      *
102:      * @param  string $name
103:      * @param  mixed $arguments
104:      * @return $this|mixed
105:      */
106:     public function __call($name, $arguments)
107:     {
108:         $name = 'using' . ucfirst($name);
109: 
110:         if (method_exists($this, $name)) {
111:             return call_user_func_array([$this, $name], $arguments);
112:         }
113: 
114:         return trigger_error('Call to undefined method ' . __CLASS__ . '::' . $name . '()', E_USER_ERROR);
115:     }
116: 
117:     /**
118:      * Get html builder class.
119:      *
120:      * @return \Yajra\Datatables\Html\Builder
121:      */
122:     public function getHtmlBuilder()
123:     {
124:         return app(\Yajra\Datatables\Html\Builder::class);
125:     }
126: 
127:     /**
128:      * Get request object.
129:      *
130:      * @return \Yajra\Datatables\Request|static
131:      */
132:     public function getRequest()
133:     {
134:         return $this->request;
135:     }
136: }
137: 
API documentation generated by ApiGen