jbizzay / magma
Laravel 软件包,用于创建强大和动态的控制器
此软件包的官方仓库似乎已不存在,因此软件包已被冻结。
Requires
- php: >=5.3.0
- illuminate/support: ~4.1
- laravelbook/ardent: ~2.4
Suggests
- zizaco/entrust: add Role-based Permissions to Laravel 4
This package is not auto-updated.
Last update: 2020-01-20 03:52:50 UTC
README
警告!此软件包处于早期测试阶段,将会有很多变化。
Magma 是一个 Laravel 软件包,用于创建强大和动态的控制器。使用 Magma 的控制器应该包含更少的代码,同时更具描述性,并允许更多的功能。Magma 抽象掉了在应用程序控制器中常见的大量重复代码。
特性
当前
- 通过 URL 参数进行动态 Eloquent 查询(按顺序、跳过、获取、where、with)
- 与 Ardent 集成
- 对模型进行智能操作的静态方法
- 删除资源时自动清理应该被删除的关系(类似于 on delete cascade)
- 如果它们存在于 post/put 有效负载中,则自动创建/更新关系
未来
- 找出如何将 Entrust 角色权限授权与验证集成。能够在控制器、模型、字段、字段值上设置
- 与 Ardent 解耦,因此软件包仅依赖于 Eloquent
- 使错误更灵活,而不仅仅是返回 JSON 错误响应
安装
将软件包添加到 composer.json 文件中的 'require' 部分
"require": {
"jbizzay/magma": "dev-master"
},
从命令行运行 'composer dump-autoload'
#composer dump-autoload
用法
模型
模型应扩展 Ardent 并使用
public static $relationsData = [];
这就是模型与 Magma 一起工作的全部内容,您可以使用正常的 Ardent 功能,如加湿和验证。
查询
从您的控制器或路由中调用 Magma::query
return Magma::query('User');
** 参数**
- 要查询的模型名称
** 查询参数**
- order_by - 排序结果(order_by=username,asc)
- skip - 跳过记录(skip=10)
- take - 限制记录数(limit=100)
- where - 添加 where 查询(where[]=status,1)
- with - 加载相关数据(with[]=roles&with[]=image)
显示
从您的控制器或路由中调用 Magma::find
return Magma::find('User', $id);
参数
- 要检索的模型名称
- 模型 ID
查询参数
- with[] - 加载相关数据,例如 with[]=roles&with[]=image
响应是检索到的模型记录,如果没有找到,则返回 JSON 错误响应。
存储
从您的控制器或路由中调用 Magma::store
return Magma::store('User');
或
return Magma::store('User', [], function ($user) {
// Do something in saved callback
}, function ($user) {
// Do something in error callback
});
参数
- 要创建的模型名称
- 要设置的模型参数数组。它还会覆盖在 Input 中设置的任何内容
- 成功回调函数
- 错误回调函数
响应是创建的模型记录。如果附加了相关模型,则它们也将附加到模型记录中。如果验证失败,则响应将是包含错误消息的 JSON 响应。
当以这种方式发布:POST /api/users,携带数据:username=test&email=test@mail.net&password=password&password_confirmation=password&roles[]=1&roles[]=2&image[]=123,如果User模型为角色和图像设置了$relationsData,用户记录也将同步这些角色ID并附加图像。
更新
从您的控制器或路由调用Magma::update
return Magme::update('User', 123);
或
return Magma::update('User', 123, [], function ($user), {
// Do something in saved callback
}, function ($user) {
// Do something in error callback
});
参数
- 要更新的模型名称
- 模型 ID
- 要设置的模型参数数组。它还会覆盖在 Input 中设置的任何内容
- 成功回调函数
- 错误回调函数
删除
从您的控制器或路由调用Magma::destroy。Magma还会从相关记录中解除绑定
return Magma::destroy('User', 123);
或
return Magma::destroy('User', 123, function ($user) {
// Do something on success
});
参数
- 要删除的模型名称
- 模型 ID
- 成功回调函数