'orders_view', 'product_sku' => 'mafs_view', 'products' => 'products', 'reclamations' => 'reclamations_view', 'maf_order' => 'maf_orders_view', 'import' => 'imports', 'responsibles' => 'responsibles', 'users' => 'users', 'contracts' => 'contracts', ]; public function getFilters(FilterRequest $request) { $table = $request->validated('table'); $column = $request->validated('column'); if(!array_key_exists($table, self::DB_TABLES)) { abort(400, 'Table not found'); } $gp = session('gp_' . $table); $dbTable = self::DB_TABLES[$table]; if (Schema::hasColumn($dbTable, $column)) { $q = DB::table($dbTable)->select($column)->distinct(); if (Schema::hasColumn($dbTable, 'year')) { $q->where('year' , year()); } if (Schema::hasColumn($dbTable, 'deleted_at')) { $q->whereNull('deleted_at'); } if(isset($gp['filters']) && is_array($gp['filters']) && count($gp['filters'])) { foreach ($gp['filters'] as $colName => $vals) { $q->where(function ($query) use ($gp, $colName, $vals) { foreach (explode('||', $vals) as $val) { $query->orWhere($colName, '=', $val); } }); } } // dd($q->toRawSql()); $result = $q->orderBy($column)->get()->pluck($column)->toArray(); } else { $result = []; } return response()->json($result, 200, [], JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); } }