giardina/dynamicrud

动态 CRUD 应用程序(DynamiCrud)可用于标准表操作。

0.1.0 2017-07-13 07:47 UTC

This package is auto-updated.

Last update: 2024-09-22 10:44:21 UTC


README

动态 CRUD 应用程序(DynamiCrud)可用于标准表操作。它将根据应用程序模型动态生成 GET、POST、PUT 和 DELETE 的 HTTP 协议路由。组件使用 laravel/lumen 中的模型配置,并使用受保护参数执行检查。

安装

需要 Eloquent 和 Facades

取消注释

$app->withFacades();
$app->withEloquent();

并在


$app->register(Giardina\Dynamicrud\DynamicrudServiceProvider::class);

bootstrap/app.php

中添加 DynamicrudServiceProvider

路由

默认情况下,如果未设置 "MODELS" 环境变量,则应用程序将自动将 snake_case 路由转换为在模型中搜索 StudlyCase 模型。

路由示例

1) $HOST / user 
2) $HOST / user_more
3) $HOST / another_big_route

将尝试使用名为

1) App\User
2) App\UserMore
3) App\AnotherBigRoute

自定义路由

使用 .env 文件中的 "MODELS" 环境变量创建您的路由配置

示例


MODELS={"user":"App\\CustomUser", "another_route":"App\\AnotherModel"}

模型设置

#!php

class CustomUser extends Model
{
    use SoftDeletes;
 
    protected $table = 'user';
    protected $primaryKey = 'id';
 
    protected $fillable = [
        "title",
        "name",
        "surname",
        "display_name",
        "passport",
        "nationality_id",
        "image"
    ];
 
    protected $guarded = ['id'];
     
    public $rules = [
        "nationality_id" => 'required|integer',
        "passport" => 'string',
        "name" => 'required|string'
    ];
}

默认情况下,应用程序已注册 GET、POST、PUT、DELETE 路由

GET: $HOST / user

POST: $HOST / user

PUT: $HOST / user / { id }

DELETE: $HOST / user / { id }

每个路由在 / { id } 部分都有一个通配符,因此 POST 也会处理 $HOST / user / { id }。ID 部分将被忽略(如果是 POST 协议)

如果请求体中传递了 $primaryKey(person_id)或错误返回,则 DELETE 也会对 $HOST / user 产生作用。

如果没有传递 ID,则 GET 协议将响应所有元素列表。