Yes, you can write manual validation https://laravel.com/docs/8.x/validation#manually-creating-validators
Custom FormRequest validation without DI
I am aware of custom FormRequests and can work with them just fine. But my question would be, is there any way where you can invoke such a form request validation manually inside a controller function without changing the $request paramater to said FormRequest?
Instead of
public function myFuncA(MyCustomRequestForInsuranceA $request) {
// ...
}
for each and every claim with routes like
POST api/v1/insurance-claim/insuranceA -> MyClass::myFuncA
POST api/v1/insurance-claim/insuranceB -> MyClass::myFuncB
POST api/v1/insurance-claim/insuranceC -> MyClass::myFuncC
POST api/v1/insurance-claim/insuranceD -> MyClass::myFuncD
Something like
public function myFunc(Request $request, string $insuranceIdentifier) {
switch ($insuranceIdentifier) {
case "XY":
$valid = Validator::validate($request->all(), MyCustomRequestForInsuranceXY::class);
break;
default: break;
}
}
with routes like
POST api/v1/insurance-claim/{insuranceIdentifier} -> MyClass::myFunc
My goal would be to simply reduce the amount of fixed API routes and controller (entry) functions that I need. I tried looking into the Validator code but didn't find anything making sense and searched thoroughly via Google but can't seem to find anything regarding manually invoking a custom form request class on a $request without DI. Is that even possible?
Technically I could write all validation rules into one gigantic FormRequest class and distinguish with $insuranceIdentifier there but I'd prefer one FormRequest class per claim to keep it maintainable.
Please or to participate in this conversation.