giardina / dynamicrud
动态 CRUD 应用程序(DynamiCrud)可用于标准表操作。
0.1.0
2017-07-13 07:47 UTC
Requires
- laravel/lumen-framework: 5.4.*
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 协议将响应所有元素列表。