Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/statix-php/laravel-form-actions
https://github.com/statix-php/laravel-form-actions
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/statix-php/laravel-form-actions
- Owner: statix-php
- License: mit
- Created: 2023-08-09T21:06:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-25T12:39:12.000Z (8 months ago)
- Last Synced: 2024-04-03T08:03:24.770Z (8 months ago)
- Language: PHP
- Size: 69.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Laravel Form Actions
[![Latest Version on Packagist](https://img.shields.io/packagist/v/statix-php/laravel-form-actions.svg?style=flat-square)](https://packagist.org/packages/statix-php/laravel-form-actions)
[![Total Downloads](https://img.shields.io/packagist/dt/statix-php/laravel-form-actions.svg?style=flat-square)](https://packagist.org/packages/statix-php/laravel-form-actions)Laravel Form Actions combines the best features of Spatie's Laravel Data and Laravel's Form Requests, resulting in a powerful and efficient package that simplifies form handling in your Laravel applications.
## Installation
You can easily install this package using Composer by running the following command. For more details, visit the [Packagist page](https://packagist.org/packages/statix-php/laravel-form-actions).
```bash
composer require statix-php/laravel-form-actions
```## Creating `FormActions`
Similiar to [Laravel Form Requests](https://laravel.com/docs/validation#form-request-validation), you can create a new `FormAction` using Artisan with the following command:
```bash
php artisan make:form-action ActionName
```This command will generate a ActionName class in the app\Actions directory. The initial content of the class is as follows:
```php
$this->name,
'email' => $this->email,
'timezone' => $this->timezone ?? 'UTC',
]);
}
}
```With the action in place, let's integrate it into our routes.
```php
// routes/web.phpuse App\Actions\ActionName;
Route::post('/register', function(ActionName $action) {
$user = $action->handle();
auth()->login($user);
return redirect()->route('dashboard');
});
```No manual authorization or validation calls are required. Just like Laravel `FormRequest`, the actions automatically handle authorization and validation when they're resolved from the container. (This behavior can be disabled).
Awesome, so now let's write some tests for this action!
## Testing
```bash
composer test
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) for details.
## Security Vulnerabilities
Please reach out to me directly for any potential security vulnerabilities.
## Credits
- [Wyatt Castaneda](https://github.com/statix-php)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.