44
55use Illuminate \Contracts \Database \Eloquent \Builder as EloquentBuilder ;
66use Illuminate \Contracts \Database \Query \Builder as QueryBuilder ;
7+ use Illuminate \Support \Facades \Config ;
78use Illuminate \Support \Traits \Macroable ;
89use Yajra \DataTables \Exceptions \Exception ;
9- use Yajra \DataTables \Utilities \Config ;
10+ use Yajra \DataTables \Utilities \Config as DataTablesConfig ;
1011use Yajra \DataTables \Utilities \Request ;
1112
1213class DataTables
@@ -42,13 +43,15 @@ public static function of($source)
4243 */
4344 public static function make ($ source )
4445 {
45- $ engines = ( array ) config ('datatables.engines ' );
46- $ builders = ( array ) config ('datatables.builders ' );
46+ $ engines = Config:: array ('datatables.engines ' , [] );
47+ $ builders = Config:: array ('datatables.builders ' , [] );
4748
4849 $ args = func_get_args ();
4950 foreach ($ builders as $ class => $ engine ) {
50- if ($ source instanceof $ class ) {
51- $ callback = [$ engines [$ engine ], 'create ' ];
51+ if (is_string ($ class ) && $ source instanceof $ class ) {
52+ /** @var int|string $engineKey */
53+ $ engineKey = is_int ($ engine ) || is_string ($ engine ) ? $ engine : (string ) $ engine ;
54+ $ callback = [$ engines [$ engineKey ], 'create ' ];
5255
5356 if (is_callable ($ callback )) {
5457 /** @var \Yajra\DataTables\DataTableAbstract $instance */
@@ -87,7 +90,7 @@ public function getRequest(): Request
8790 /**
8891 * Get config instance.
8992 */
90- public function getConfig (): Config
93+ public function getConfig (): DataTablesConfig
9194 {
9295 return app ('datatables.config ' );
9396 }
@@ -99,8 +102,7 @@ public function getConfig(): Config
99102 */
100103 public function query (QueryBuilder $ builder ): QueryDataTable
101104 {
102- /** @var string $dataTable */
103- $ dataTable = config ('datatables.engines.query ' );
105+ $ dataTable = Config::string ('datatables.engines.query ' );
104106
105107 $ this ->validateDataTable ($ dataTable , QueryDataTable::class);
106108
@@ -114,8 +116,7 @@ public function query(QueryBuilder $builder): QueryDataTable
114116 */
115117 public function eloquent (EloquentBuilder $ builder ): EloquentDataTable
116118 {
117- /** @var string $dataTable */
118- $ dataTable = config ('datatables.engines.eloquent ' );
119+ $ dataTable = Config::string ('datatables.engines.eloquent ' );
119120
120121 $ this ->validateDataTable ($ dataTable , EloquentDataTable::class);
121122
@@ -131,8 +132,7 @@ public function eloquent(EloquentBuilder $builder): EloquentDataTable
131132 */
132133 public function collection ($ collection ): CollectionDataTable
133134 {
134- /** @var string $dataTable */
135- $ dataTable = config ('datatables.engines.collection ' );
135+ $ dataTable = Config::string ('datatables.engines.collection ' );
136136
137137 $ this ->validateDataTable ($ dataTable , CollectionDataTable::class);
138138
0 commit comments