Install the package via Composer:
composer require vendor/package-name
Publish the package's configuration (if applicable) and service provider:
php artisan vendor:publish --provider="Vendor\PackageName\PackageServiceProvider"
The core feature is now accessible via FormRequest validation. To retrieve validated data directly from a FormRequest instance, use the new getValidatedData() method:
use Vendor\PackageName\Http\Requests\CustomRequest;
public function store(CustomRequest $request) {
$validatedData = $request->getValidatedData(); // New method
// Use $validatedData directly (already validated)
}
Instead of manually validating and retrieving data:
$validated = $request->validate([
'email' => 'required|email',
'name' => 'required|string',
]);
Use the new method:
$validatedData = $request->getValidatedData(); // Returns validated array
Extend FormRequest to customize validation logic:
use Vendor\PackageName\Http\Requests\CustomRequest;
class StoreUserRequest extends CustomRequest {
public function rules() {
return [
'email' => 'required|email|unique:users',
'password' => 'required|min:8',
];
}
}
For hybrid approaches (e.g., custom validation + package features):
public function withValidator($validator) {
$validator->after(function ($validator) {
// Custom validation logic
});
}
$validatedData = $request->getValidatedData();
FormRequest internals, ensure your extended classes don’t conflict with its validation pipeline.validate() alongside getValidatedData(), the latter may return stale data. Call getValidatedData() after validation.dd($this->rules()) in your FormRequest to verify rules are loaded.$request->getValidatedData() to debug missing fields.getValidatedData() in your FormRequest subclass to add preprocessing:
public function getValidatedData() {
$data = parent::getValidatedData();
return $this->transformData($data); // Custom logic
}
config/package-name.php.getValidatedData() is optimized for single-use cases. For batch operations, cache the result:
$validated = $request->getValidatedData();
// Reuse $validated instead of calling repeatedly
How can I help you explore Laravel packages today?