jeyroik/extas-fields-conditions

该包的最新版本(1.1.0)没有可用的许可证信息。

Extas 字段条件

1.1.0 2020-09-03 07:05 UTC

This package is auto-updated.

Last update: 2024-09-29 05:48:48 UTC


README

PHP Composer codecov.io PHPStan Enabled

描述

此包允许为字段配置(检查)创建、创建后、更新前、更新后、删除前、删除后的条件。

  • 创建前
  • 创建后
  • 更新前
  • 更新后
  • 删除前
  • 删除后

使用方法

对于我们的实体 item,在创建前设置两个检查:

  • 检查值是否不等于 test
  • 检查具有当前值的实体不存在。

extas.json

{
  "fields": [
    {
      "name": "value",
      "parameters": {
        "subject": {
          "name": "subject",
          "value": "item"
        }
      },
      "before_create": [
        {
          "condition": "neq",
          "value": "test"
        },
        {
          "condition": "empty",
          "value": {
            "repository": "itemRepository",
            "method": "all",
            "query": {"value": "@value"}
          }
        }
      ]
    }
  ]
}
/**
 * @method itemRepo()
 */
$item = new class ([
    'value' => 'test'
]) extends \extas\components\Item {
    use \extas\components\THasValue;
    protected function getSubjectForExtension() : string{
        return 'item';
    }
};

try {
    $this->itemRepo()->create($item); // Exception "Condition failed"
} catch (\Exception $e) {

}
$item->setValue('unique');
$this->itemRepo()->create($item); // ok
$this->itemRepo()->create($item); // Exception "Condition failed"