has-crud-action
is a laravel package that provides CRUD actions easily.
- CRUD - easily create, read, update, and delete data entities.
- Rules - you can add the rules for your CRUD actions on the fly.
- Magic Parameters - magic parameters that can be used in your actions.
You can install the package via composer:
composer require lakasir/has-crud-action
// in your routes file
Route::resource('suppliers', SupplierController::class);
// in your controller file
use Lakasir\HasCrudAction\Abstracts\HasCrudActionAbstract;
use App\Models\Supplier;
class SupplierController extends HasCrudActionAbstract
{
public static string $model = Supplier::class;
}
rules
the rules method allows you to add your own rules to the action.
public static function rules(): array
{
return [
'phone_number' => 'unique:suppliers,phone_number',
'name' => 'required'
];
}
beforeStore
the beforeStore method allows you to modify the data before it is stored.
public static function beforeStore($data, $model): Model
{
$model->name = strtoupper($data['name']);
return $model;
}
beforeUpdate
the beforeUpdate method allows you to modify the data before it is updated.
public static function beforeUpdate($data, $model): Model
{
$model->name = strtoupper($data['name']);
return $model;
}
beforeDestroy
the beforeDestroy method allows you to modify the data before it is destroyed.
public static function beforeDestroy($model): Model
{
dd($model);
return $model;
}
response
the response method allows you to modify the response data.
public static function response($record)
{
return [
'data' => $record,
'success' => true,
];
}
- $id - The ID of the record
- $method - The HTTP method (GET, POST, PUT, PATCH, DELETE)
- $model - The model class name
- $data - The data sent from the request
- $record - The record object associated with the action
- $action - The current method action name
- $route - The current route name
composer test
- Pagination support
- Filter support
- ModifyQuery
- Error handler for unsupported magic parameter
- Relation support
- Unit test
- Pipeline
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email lakasirapp@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
This package was generated using the Laravel Package Boilerplate.