22
33namespace the42coders \TLAP \Traits ;
44
5- use Illuminate \Database \Eloquent \Collection ;
65use Illuminate \Http \Request ;
76use Illuminate \Support \Arr ;
87use Illuminate \Support \Facades \DB ;
98use Illuminate \Support \Str ;
109use ReflectionClass ;
11- use the42coders \TLAP \Fields \TextField ;
10+ use the42coders \TLAP \Contracts \ Fields \Field ;
1211use the42coders \TLAP \TLAP ;
1312
1413trait TLAPAdminTrait
@@ -21,13 +20,13 @@ public static function fields()
2120 return self ::$ fields ;
2221 }
2322
24- public static function getTLAPStaticColumnStructure ($ tableName )
23+ public static function getTLAPStaticColumnStructure ($ tableName ): array
2524 {
2625 $ structure = [];
2726
28- $ table_info_columns = DB ::select (DB ::raw ('SHOW COLUMNS FROM ' . $ tableName ));
27+ $ tableInfoColumns = DB ::select (DB ::raw ('SHOW COLUMNS FROM ' . $ tableName ));
2928
30- foreach ($ table_info_columns as $ column ) {
29+ foreach ($ tableInfoColumns as $ column ) {
3130 $ structure [$ column ->Field ] = [
3231 'type ' => $ column ->Type ,
3332 'nullable ' => $ column ->Null ,
@@ -40,7 +39,7 @@ public static function getTLAPStaticColumnStructure($tableName)
4039 return $ structure ;
4140 }
4241
43- public static function withRelations ():array
42+ public static function withRelations (): array
4443 {
4544 return Arr::pluck (self ::getEloquentRelations (), 'name ' );
4645 }
@@ -64,7 +63,7 @@ public static function getEloquentRelations(): array
6463
6564 public static function getModelName (): string
6665 {
67- return substr ( strrchr ( __CLASS__ , "\\" ), 1 );
66+ return class_basename ( __CLASS__ );
6867 }
6968
7069 public static function getModelPluralName (): string
@@ -77,7 +76,7 @@ public static function getTLAPStaticTableName()
7776 return (new static )->getTable ();
7877 }
7978
80- public static function getTLAPTableStructure ()
79+ public static function getTLAPTableStructure (): array
8180 {
8281 $ tableName = self ::getTLAPStaticTableName ();
8382
@@ -97,6 +96,8 @@ public static function getForm($model = null): string
9796 }
9897
9998 $ form = '' ;
99+
100+ /** @var Field $field */
100101 foreach (self ::fields () as $ field ) {
101102 $ form .= $ field ->render ($ model );
102103 }
@@ -111,7 +112,7 @@ public static function getColumnNames(): array
111112
112113 public static function getDatatableFields (): array
113114 {
114- if (empty (self ::fields ())){
115+ if (empty (self ::fields ())){
115116 return array_keys (self ::cleanData (self ::getTLAPTableStructure ()));
116117 }
117118
@@ -140,9 +141,9 @@ public static function validation():array
140141
141142 $ columns = self ::getTLAPTableStructure ();
142143
143- foreach ($ columns as $ columName => $ column ){
144+ foreach ($ columns as $ columnName => $ column ){
144145 if ($ column ['nullable ' ] === 'NO ' ){
145- $ validation [$ columName ] = 'required ' ;
146+ $ validation [$ columnName ] = 'required ' ;
146147 }
147148 }
148149
@@ -173,11 +174,11 @@ public static function getDatatable(Request $request, $ids = null): \Illuminate\
173174
174175 $ columns = self ::getColumnNames ();
175176
176- if ($ columns [0 ] !== 'id ' ){
177+ if ($ columns [0 ] !== 'id ' ){
177178 array_unshift ($ columns , 'id ' );
178179 }
179180
180- if (empty ($ request ->input ('search.value ' )))
181+ if (empty ($ request ->input ('search.value ' )))
181182 {
182183 $ data = self ::select ($ columns )
183184 ->offset ($ start )
@@ -219,15 +220,14 @@ public static function applyDataFilter(array $data, array $columnsStructure): ar
219220
220221 foreach ($ data as $ dataKey => $ dataValue ){
221222 foreach ($ columnStructure as $ columnKey => $ columnValue ){
222- if ( array_key_exists ( $ columnValue [ ' type ' ], config ('tlap.datatableFilter.type ' ))){
223- $ filterName = config ( ' tlap.datatableFilter.type ' )[ $ columnValue [ ' type ' ]];
224- $ filter = new $ filterName( );
223+ $ filterName = config ('tlap.datatableFilter.type. ' . $ columnValue [ ' type ' ]);
224+ if ( class_exists ( $ filterName)) {
225+ $ filter = app ( $ filterName );
225226 $ data [$ dataKey ][$ columnKey ] = $ filter ->filter ($ dataValue [$ columnKey ]);
226227 }
227228 }
228229 }
229230
230-
231231 return $ data ;
232232 }
233233
0 commit comments