TOEController.php
1 <?php 2 3 namespace App\Http\Controllers\Filter; 4 5 use App\Http\Controllers\Controller; 6 use App\Models\TOE; 7 use Illuminate\Contracts\Database\Eloquent\Builder; 8 use Illuminate\Http\Request; 9 10 class TOEController extends Controller 11 { 12 /** 13 * Handle the incoming request. 14 * 15 * @return \Illuminate\Http\Response 16 */ 17 public function __invoke(Request $request) 18 { 19 return TOE::query() 20 ->select('id', 'name') 21 ->orderBy('name') 22 ->when( 23 $request->search, 24 fn (Builder $query) => $query 25 ->where('name', 'like', "%{$request->search}%") 26 ->orWhere('alias', 'like', "%{$request->search}%") 27 ) 28 ->when( 29 $request->exists('selected'), 30 fn (Builder $query) => $query->whereIn('id', $request->input('selected', [])), 31 fn (Builder $query) => $query->limit(10) 32 ) 33 ->get(); 34 } 35 }