Класс RulesChecker
Проверка правил с поддержкой ORM.
Добавляет функции, связанные с ORM, в класс RulesChecker.
Константы
-
stringCREATE'create'
Указывает, что правила проверки, которые нужно применить, — это правила, используемые для создания сущностей
-
stringDELETE'delete'
Указывает, что правила проверки, которые нужно применить, — это правила, используемые для удаления сущностей
-
stringUPDATE'update'
Указывает, что правила проверки, которые нужно применить, — это правила, используемые для обновления сущностей
Краткое описание свойств
- $_createRules protected
Cake\Datasource\RuleInvoker[]Список правил, проверяемых во время операций создания
- $_deleteRules protected
Cake\Datasource\RuleInvoker[]Список правил, проверяемых во время операций удаления
- $_options protected
arrayСписок параметров, передаваемых каждому вызываемому правилу
- $_rules protected
Cake\Datasource\RuleInvoker[]Список правил, проверяемых во время операций создания и обновления
- $_updateRules protected
Cake\Datasource\RuleInvoker[]Список правил, проверяемых во время операций обновления
- $_useI18n protected
boolИспользовать ли функции I18n для перевода сообщений об ошибках по умолчанию
Краткое описание методов
-
__construct() public
Конструктор. Принимает параметры, которые будут передаваться всем правилам.
-
_addError() protected
Утилитарный метод для оформления любого вызываемого объекта, так что, если он возвращает false, соответствующее свойство сущности помечается как недействительное.
-
_addLinkConstraintRule() protected
Добавляет правило ограничения ссылки.
-
_checkRules() protected
Используется функциями верхнего уровня checkDelete, checkCreate и checkUpdate, эта функция итерирует массив, содержащий правила, которые нужно проверить, и проверяет их все.
-
add() public
Добавляет правило, которое будет применяться к сущности как при создании, так и при обновлении.
-
addCreate() public
Добавляет правило, которое будет применяться к сущности при создании.
-
addDelete() public
Добавляет правило, которое будет применяться к сущности при удалении.
-
addUpdate() public
Добавляет правило, которое будет применяться к сущности при обновлении.
-
check() public
Выполняет каждое из правил, передавая указанную сущность, и возвращает true, если все они пройдены. Правила, которые нужно применить, зависят от параметра $mode, который может быть только RulesChecker::CREATE, RulesChecker::UPDATE или RulesChecker::DELETE
-
checkCreate() public
Выполняет каждое из правил, передавая указанную сущность, и возвращает true, если все они пройдены. Выбранные правила будут только те, которые указаны для выполнения при 'создании'.
-
checkDelete() public
Выполняет каждое из правил, передавая указанную сущность, и возвращает true, если все они пройдены. Выбранные правила будут только те, которые указаны для выполнения при 'удалении'.
-
checkUpdate() public
Выполняет каждое из правил, передавая указанную сущность, и возвращает true, если все они пройдены. Выбранные правила будут только те, которые указаны для выполнения при 'обновлении'.
-
existsIn() public
Возвращает вызываемый объект, который может использоваться как правило для проверки того, что значения, извлечённые из сущности для проверки, существуют в качестве первичного ключа в другой таблице.
-
isLinkedTo() public
Проверяет, существуют ли ссылки на данную ассоциацию.
-
isNotLinkedTo() public
Проверяет, не существует ли ссылок на данную ассоциацию.
-
isUnique() public
Возвращает вызываемый объект, который может использоваться как правило для проверки уникальности значения в таблице.
-
validCount() public
Проверяет количество связанных записей.
Краткое описание методов
__construct() public
__construct(array $options = [])
Конструктор. Принимает опции, которые будут переданы всем правилам.
Параметры
-
array$options optional Опции для передачи каждому правилу
_addError() protected
_addError(callable $rule, string|array|null $name = null, array $options = []): Cake\Datasource\RuleInvoker
Вспомогательный метод для декорирования любого вызываемого объекта, так что если он возвращает false, соответствующее свойство в сущности помечается как недействительное.
Параметры
-
callable$rule Правило для декорирования
-
string|array|null$name optional Псевдоним для правила или массив опций
-
array$options optional Опции, содержащие сообщение об ошибке и поле.
Возвращает
Cake\Datasource\RuleInvoker_addLinkConstraintRule() protected
_addLinkConstraintRule(Cake\ORM\Association|string $association, string|null $errorField, string|null $message, string $linkStatus, string $ruleName): Cake\Datasource\RuleInvoker
Добавляет правило ограничения связи.
Параметры
-
Cake\ORM\Association|string$association Ассоциация для проверки ссылок.
-
string|null$errorField Имя свойства, используемого для установки возможных ошибок. Если отсутствует, имя выводится из
$association.-
string|null$message Сообщение об ошибке, которое нужно показать, если правило не выполняется.
-
string$linkStatus Состояние ссылки, необходимое для прохождения проверки.
-
string$ruleName Псевдоним/имя правила.
Возвращает
Cake\Datasource\RuleInvokerВыбрасывает
InvalidArgumentExceptionВ случае, если аргумент `$association` имеет недопустимый тип.
См. также
\Cake\ORM\RulesChecker::isNotLinkedTo()
\Cake\ORM\Rule\LinkConstraint::STATUS_LINKED
\Cake\ORM\Rule\LinkConstraint::STATUS_NOT_LINKED
_checkRules() protected
_checkRules(Cake\Datasource\EntityInterface $entity, array $options = [], Cake\Datasource\RuleInvoker[] $rules = []): bool
Используется функциями верхнего уровня checkDelete, checkCreate и checkUpdate, эта функция итеративно проходит массив, содержащий правила, которые необходимо проверить, и проверяет их все.
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность для проверки на валидность.
-
array$options optional Дополнительные опции для передачи функциям проверки.
-
Cake\Datasource\RuleInvoker[]$rules optional Список правил, которые необходимо проверить.
Возвращает
booladd() public
add(callable $rule, string|array|null $name = null, array $options = []): $this
Добавляет правило, которое будет применено к сущности как при операциях создания, так и при обновлении.
Опции
Массив опций принимает следующие специальные ключи:
-
errorField: Имя поля сущности, которое будет помечено как недействительное, если правило не пройдено. -
message: Сообщение об ошибке, которое нужно установить дляerrorField, если правило не пройдено.
Параметры
-
callable$rule Вызываемая функция или объект, которые вернут, является ли сущность валидной или нет.
-
string|array|null$name optional Псевдоним для правила или массив опций.
-
array$options optional Список дополнительных опций для передачи вызываемой функции правила во втором аргументе.
Возвращает
$thisaddCreate() public
addCreate(callable $rule, string|array|null $name = null, array $options = []): $this
Добавляет правило, которое будет применено к сущности при операциях создания.
Опции
Массив опций принимает следующие специальные ключи:
-
errorField: Имя поля сущности, которое будет помечено как недействительное, если правило не пройдено. -
message: Сообщение об ошибке, которое нужно установить дляerrorField, если правило не пройдено.
Параметры
-
callable$rule Вызываемая функция или объект, которые вернут, является ли сущность валидной или нет.
-
string|array|null$name optional Псевдоним для правила или массив опций.
-
array$options optional Список дополнительных опций для передачи вызываемой функции правила во втором аргументе.
Возвращает
$thisaddDelete() public
addDelete(callable $rule, string|array|null $name = null, array $options = []): $this
Добавляет правило, которое будет применено к сущности при операциях удаления.
Опции
Массив опций принимает следующие специальные ключи:
-
errorField: Имя поля сущности, которое будет помечено как недействительное, если правило не пройдено. -
message: Сообщение об ошибке, которое нужно установить дляerrorField, если правило не пройдено.
Параметры
-
callable$rule Вызываемая функция или объект, которые вернут, является ли сущность валидной или нет.
-
string|array|null$name optional Псевдоним для правила или массив опций.
-
array$options optional Список дополнительных опций для передачи вызываемой функции правила во втором аргументе.
Возвращает
$thisaddUpdate() public
addUpdate(callable $rule, string|array|null $name = null, array $options = []): $this
Добавляет правило, которое будет применено к сущности при операциях обновления.
Опции
Массив опций принимает следующие специальные ключи:
-
errorField: Имя поля сущности, которое будет помечено как недействительное, если правило не пройдено. -
message: Сообщение об ошибке, которое нужно установить дляerrorField, если правило не пройдено.
Параметры
-
callable$rule Вызываемая функция или объект, которые вернут, является ли сущность валидной или нет.
-
string|array|null$name optional Псевдоним для правила или массив опций.
-
array$options optional Список дополнительных опций для передачи вызываемой функции правила во втором аргументе.
Возвращает
$thischeck() public
check(Cake\Datasource\EntityInterface $entity, string $mode, array $options = []): bool
Запускает каждое из правил, передавая предоставленную сущность, и возвращает true, если все они пройдены. Правила, которые будут применены, зависят от параметра $mode, который может быть только RulesChecker::CREATE, RulesChecker::UPDATE или RulesChecker::DELETE
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность для проверки на валидность.
-
string$mode Либо 'create', 'update' или 'delete'.
-
array$options optional Дополнительные опции для передачи функциям проверки.
Возвращает
boolВыбрасывает
InvalidArgumentExceptionесли передан недопустимый режим.
checkCreate() public
checkCreate(Cake\Datasource\EntityInterface $entity, array $options = []): bool
Запускает каждое из правил, передавая предоставленную сущность, и возвращает true, если все они пройдены. Выбранные правила будут только те, которые указаны для запуска при 'create'
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность для проверки на валидность.
-
array$options optional Дополнительные опции для передачи функциям проверки.
Возвращает
boolcheckDelete() public
checkDelete(Cake\Datasource\EntityInterface $entity, array $options = []): bool
Запускает каждое из правил, передавая предоставленную сущность, и возвращает true, если все они пройдены. Выбранные правила будут только те, которые указаны для запуска при 'delete'
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность для проверки на валидность.
-
array$options optional Дополнительные опции для передачи функциям проверки.
Возвращает
boolcheckUpdate() public
checkUpdate(Cake\Datasource\EntityInterface $entity, array $options = []): bool
Выполняет каждую из правил, передавая предоставленную сущность и возвращает true, если все они пройдут. Выбранные правила будут только те, которые указаны для выполнения при 'обновлении'
Параметры
-
Cake\Datasource\EntityInterface$entity Сущность для проверки на валидность.
-
array$options необязательный Дополнительные параметры для передачи функциям проверки.
Возвращает
boolexistsIn() public
existsIn(string|string[] $field, Cake\ORM\TableCake\ORM\Association|string $table, string|array|null $message = null): Cake\Datasource\RuleInvoker
Возвращает вызываемый объект, который может использоваться в качестве правила для проверки, существуют ли значения, извлеченные из сущности для проверки, в качестве первичного ключа в другой таблице.
Это полезно для обеспечения проверки целостности внешних ключей.
Пример:
$rules->add($rules->existsIn('author_id', 'Authors', 'Invalid Author'));
$rules->add($rules->existsIn('site_id', new SitesTable(), 'Invalid Site')); Доступны $options: ошибка 'сообщение' и флаг 'allowNullableNulls'. 'сообщение' задаёт пользовательское сообщение об ошибке. Установите 'allowNullableNulls' в true, чтобы принять составные внешние ключи, где один или несколько столбцов nullable равны null.
Параметры
-
string|string[]$field Поле или список полей для проверки существования по первичному ключу в другой таблице.
-
Cake\ORM\TableCake\ORM\Association|string$table Имя таблицы, в которой будет проверяться существование полей.
-
string|array|null$message необязательный Сообщение об ошибке, которое будет отображаться в случае, если правило не выполняется. Также может быть массивом опций. При массиве, ключ 'сообщение' может использоваться для предоставления сообщения.
Возвращает
Cake\Datasource\RuleInvokerisLinkedTo() public
isLinkedTo(Cake\ORM\Association|string $association, string|null $field = null, string|null $message = null): Cake\Datasource\RuleInvoker
Проверяет, существуют ли ссылки на заданную ассоциацию.
Пример:
$rules->addUpdate($rules->isLinkedTo('Articles', 'article')); Для таблицы Comments, которая имеет ассоциацию belongsTo Articles, эта проверка гарантирует, что комментарии могут быть изменены только при условии, что они связаны с существующей статьёй.
Параметры
-
Cake\ORM\Association|string$association Ассоциация для проверки ссылок.
-
string|null$field необязательный Имя свойства ассоциации. Если предоставлено, это имя, используемое для установки возможных ошибок. Если отсутствует, имя определяется из
$association.-
string|null$message необязательный Сообщение об ошибке, которое будет отображено в случае, если правило не выполняется.
Возвращает
Cake\Datasource\RuleInvokerisNotLinkedTo() public
isNotLinkedTo(Cake\ORM\Association|string $association, string|null $field = null, string|null $message = null): Cake\Datasource\RuleInvoker
Проверяет, не существуют ли ссылки на заданную ассоциацию.
Пример:
$rules->addDelete($rules->isNotLinkedTo('Comments', 'comments')); Для таблицы Articles, которая имеет ассоциацию hasMany Comments, эта проверка гарантирует, что статьи могут быть удалены только при отсутствии связанных комментариев.
Параметры
-
Cake\ORM\Association|string$association Ассоциация для проверки ссылок.
-
string|null$field необязательный Имя свойства ассоциации. Если предоставлено, это имя, используемое для установки возможных ошибок. Если отсутствует, имя определяется из
$association.-
string|null$message необязательный Сообщение об ошибке, которое будет отображаться в случае, если правило не выполняется.
Возвращает
Cake\Datasource\RuleInvokerisUnique() public
isUnique(string[] $fields, string|array|null $message = null): Cake\Datasource\RuleInvoker
Возвращает вызываемый объект, который может использоваться в качестве правила для проверки уникальности значения в таблице.
Пример
$rules->add($rules->isUnique(['email'], 'The email should be unique'));
Опции
-
allowMultipleNullsПозволяет любому полю иметь несколько значений null. По умолчанию false.
Параметры
-
string[]$fields Список полей для проверки уникальности.
-
string|array|null$message необязательный Сообщение об ошибке, которое будет отображаться в случае, если правило не выполняется. Также может быть массивом опций. При массиве, ключ 'сообщение' может использоваться для предоставления сообщения.
Возвращает
Cake\Datasource\RuleInvokervalidCount() public
validCount(string $field, int $count = 0, string $operator = '>', string|null $message = null): Cake\Datasource\RuleInvoker
Проверяет количество связанных записей.
Параметры
-
string$field Поле для проверки количества.
-
int$count необязательный Ожидаемое количество.
-
string$operator необязательный Оператор для сравнения количества.
-
string|null$message необязательный Сообщение об ошибке, которое будет отображаться в случае, если правило не выполняется.
Возвращает
Cake\Datasource\RuleInvokerДетали свойств
$_createRules protected
Список правил для проверки при операциях создания
Тип
Cake\Datasource\RuleInvoker[]$_deleteRules protected
Список правил для проверки при операциях удаления
Тип
Cake\Datasource\RuleInvoker[]$_options protected
Список параметров для передачи каждому вызываемому правилу
Тип
array$_rules protected
Список правил, которые должны быть проверены как при операциях создания, так и при операциях обновления
Тип
Cake\Datasource\RuleInvoker[]$_updateRules protected
Список правил для проверки во время операций обновления
Тип
Cake\Datasource\RuleInvoker[]$_useI18n protected
Использовать ли функции I18n для перевода сообщений об ошибках по умолчанию
Тип
bool
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.ORM.RulesChecker.html