lakasir/has-crud-action

Has-CRUD-Action 是一个 Laravel 扩展包,简化了将 CRUD(创建、读取、更新、删除)操作添加到模型中的过程。

dev-main 2024-09-19 12:41 UTC

This package is auto-updated.

Last update: 2024-09-19 12:41:28 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

has-crud-action 是一个 Laravel 扩展包,提供便捷的 CRUD 操作。

特性

  • CRUD - 方便地创建、读取、更新和删除数据实体。
  • 规则 - 您可以动态添加 CRUD 操作的规则。
  • 魔法参数 - 可在操作中使用的魔法参数。

入门指南

安装

您可以通过 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 方法允许您向操作添加自己的规则。

public static function rules(): array
{
    return [
        'phone_number' => 'unique:suppliers,phone_number',
        'name' => 'required'
    ];
}

beforeStore 方法允许您在存储之前修改数据。

public static function beforeStore($data, $model): Model
{
    $model->name = strtoupper($data['name']);

    return $model;
}

beforeUpdate 方法允许您在更新之前修改数据。

public static function beforeUpdate($data, $model): Model
{
    $model->name = strtoupper($data['name']);

    return $model;
}

beforeDestroy 方法允许您在销毁之前修改数据。

public static function beforeDestroy($model): Model
{
    dd($model);

    return $model;
}

response 方法允许您修改响应数据。

public static function response($record)
{
    return [
        'data' => $record,
        'success' => true,
    ];
}

魔法参数

  • $id - 记录的 ID
  • $method - HTTP 方法(GET、POST、PUT、PATCH、DELETE)
  • $model - 模型类名
  • $data - 请求发送的数据
  • $record - 与操作关联的记录对象
  • $action - 当前方法动作名称
  • $route - 当前路由名称

测试

composer test

待办事项

  • 分页支持
  • 过滤支持
  • 修改查询
  • 处理不支持魔法参数的错误
  • 关系支持
  • 单元测试
  • 流水线

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅 CONTRIBUTING 获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 lakasirapp@gmail.com 联系,而不是使用问题跟踪器。

致谢

许可协议

MIT 许可协议(MIT)。请参阅 许可文件 了解更多信息。

Laravel 扩展包模板

此包使用 Laravel 扩展包模板 生成。