Пакет позволяет настроить для полей условия (проверки) для стадий
- перед созданием
- после создания
- перед обновлением
- после обновления
- перед удаленеим
- после удаления
Для нашей сущности 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"