X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=app%2FHttp%2FControllers%2FTechniqueController.php;h=98623259f494f701e78a8fa3dedcd21da7350ccf;hb=0586e04204885088f31ac9861446eb0759cc8d2f;hp=cce39cea34f5e628218393d6d5ab04a01b853490;hpb=7e8555cfc96dcd364ca4fe9895e51af1bb04b546;p=alttp.git diff --git a/app/Http/Controllers/TechniqueController.php b/app/Http/Controllers/TechniqueController.php index cce39ce..9862325 100644 --- a/app/Http/Controllers/TechniqueController.php +++ b/app/Http/Controllers/TechniqueController.php @@ -3,14 +3,38 @@ namespace App\Http\Controllers; use App\Models\Technique; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; class TechniqueController extends Controller { + public function search(Request $request) { + $validatedData = $request->validate([ + 'phrase' => 'string|nullable', + 'type' => 'string|nullable', + ]); + + $techs = Technique::where('index', '=', 1); + + if (!empty($validatedData['type'])) { + $techs = $techs->where('type', '=', $validatedData['type']); + } + + if (!empty($validatedData['phrase'])) { + $search = $validatedData['phrase']; + $techs = $techs->where(function (Builder $query) use ($search) { + $query->where('title', 'LIKE', '%'.$search.'%') + ->orWhere('short', 'LIKE', '%'.$search.'%'); + }); + } + + return $techs->get()->toJson(); + } + public function single(Request $request, Technique $tech) { $this->authorize('view', $tech); - $tech->load('chapters'); + $tech->load(['chapters', 'relations']); return $tech->toJson(); }