/ app / Http / Controllers / Filter / ResolutionController.php
ResolutionController.php
 1  <?php
 2  
 3  namespace App\Http\Controllers\Filter;
 4  
 5  use App\Http\Controllers\Controller;
 6  use App\Models\Resolution;
 7  use Illuminate\Contracts\Database\Eloquent\Builder;
 8  use Illuminate\Http\Request;
 9  
10  class ResolutionController extends Controller
11  {
12      public function resolution_numbers(Request $request)
13      {
14          return Resolution::query()
15              ->select('id', 'code_seq', 'code_year')
16              ->orderBy('code_year', 'asc')
17              ->when(
18                  $request->search,
19                  fn (Builder $query) => $query
20                      ->where('code_year', 'like', "%{$request->search}%")
21              )
22              ->when(
23                  $request->exists('selected'),
24                  fn (Builder $query) => $query->whereIn('id', $request->input('selected', [])),
25                  fn (Builder $query) => $query->limit(10)
26              )->get()->map(function ($resolution) {
27                  return [
28                      'id' => $resolution->id,
29                      'name' => $resolution->resolutionNumber,
30                  ];
31              });
32      }
33  }