jbizzay/magma

此软件包最新版本(dev-master)没有可用的许可证信息。

Laravel 软件包,用于创建强大和动态的控制器

此软件包的官方仓库似乎已不存在,因此软件包已被冻结。

dev-master 2014-12-27 06:54 UTC

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
  • 成功回调函数