fyre / orm
一个对象关系映射(ORM)库。
Requires
- fyre/db: ^4.0
- fyre/entity: ^4.0
- fyre/inflector: ^2.0
- fyre/lang: ^3.0
- fyre/schema: ^4.0
- fyre/validation: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.59
- fyre/php-cs-fixer-config: ^1.0
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-09-18 05:45:46 UTC
README
FyreORM 是一个免费的、开源的 PHP 数据库 ORM。
目录
安装
使用 Composer
composer require fyre/orm
在 PHP 中
use Fyre\ORM\ModelRegistry;
方法
添加命名空间
为加载模型添加命名空间。
$namespace
是一个表示命名空间的字符串。
ModelRegistry::addNamespace($namespace);
清除
清除所有命名空间和模型。
ModelRegistry::clear();
创建默认模型
创建一个默认的 模型。
$model = ModelRegistry::createDefaultModel();
获取默认模型类
获取默认模型类名称。
$defaultModelClass = ModelRegistry::getDefaultModelClass();
获取命名空间
获取命名空间。
$namespaces = ModelRegistry::getNamespaces();
检查命名空间是否存在
检查命名空间是否存在。
$namespace
是一个表示命名空间的字符串。
$hasNamespace = ModelRegistry::hasNamespace($namespace);
检查是否已加载
检查模型是否已加载。
$alias
是一个表示模型别名的字符串。
$isLoaded = ModelRegistry::isLoaded($alias);
加载
加载一个 模型。
$alias
是一个表示模型别名的字符串。
$model = ModelRegistry::load($alias);
移除命名空间
移除一个命名空间。
$namespace
是一个表示命名空间的字符串。
$removed = ModelRegistry::removeNamespace($namespace);
设置默认模型类
设置默认模型类名称。
$defaultModelClass
是一个表示默认模型类名称的字符串。
ModelRegistry::setDefaultModelClass($defaultModelClass);
卸载
卸载一个模型。
$alias
是一个表示模型别名的字符串。
$unloaded = ModelRegistry::unload($alias);
使用
加载一个共享的 模型 实例。
$alias
是一个表示模型别名的字符串。
$model = ModelRegistry::use($alias);
模型
可以通过扩展 \Fyre\ORM\Model
类来创建自定义模型,在类名后缀为 "Model"。
为了允许自动加载模型实例,请将命名空间添加到 ModelRegistry。
删除查询
创建一个新的 删除查询。
$options
是一个包含查询选项的数组。alias
是一个表示表别名的字符串,默认为模型别名。
$query = $model->deleteQuery($options);
获取连接
获取 连接。
$type
是一个表示连接类型的字符串,默认为self::WRITE
。
$connection = $model->getConnection($type);
模型使用 ConnectionManager 进行数据库连接,您可以通过设置模型的 connectionKeys
属性或使用 setConnection
方法来指定要使用的连接。
protected array $connectionKeys = [ self::WRITE => 'default', self::READ => 'read_replica' ];
如果省略 self::READ
键,它将回退到 self::WRITE
连接进行数据库读取。
插入查询
创建一个新的 插入查询。
$query = $model->insertQuery();
替换查询
创建一个新的 替换查询。
$query = $model->replaceQuery();
选择查询
创建一个新的 选择查询。
$options
是一个包含查询选项的数组。alias
是一个表示表别名的字符串,默认为模型别名。connectionType
是一个表示连接类型的字符串,默认为self::READ
。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。
$query = $model->selectQuery($options);
设置连接
设置 连接。
$connection
是一个 连接。$type
是一个表示连接类型的字符串,默认为self::WRITE
。
$model->setConnection($connection, $type);
子查询
创建一个新的 选择查询。
$options
是一个包含查询选项的数组。alias
是一个表示表别名的字符串,默认为模型别名。connectionType
是一个表示连接类型的字符串,默认为self::READ
。
$query = $model->subquery($options);
更新查询
创建一个新的 更新查询。
$options
是一个包含查询选项的数组。alias
是一个表示表别名的字符串,默认为模型别名。
$query = $model->updateQuery($options);
更新批量查询
创建一个新的 更新批量查询。
$options
是一个包含查询选项的数组。alias
是一个表示表别名的字符串,默认为模型别名。
$query = $model->updateBatchQuery($options);
模式
别名字段
为字段名创建别名。
$field
是表示字段名的字符串。$alias
是表示别名的字符串,默认为模型别名。
$aliasField = $model->aliasField($field, $alias);
获取别名
获取模型别名。
$alias = $model->getAlias();
默认情况下,别名将是类名或在用 ModelRegistry 加载模型时使用的别名。
获取自动增长键
获取表的自动增长列。
$autoIncrementKey = $model->getAutoIncrementKey();
获取显示名称
获取显示名称。
$displayName = $model->getDisplayName();
默认情况下,显示名称将是具有名称 "name"、"title" 或 "label" 的架构中的第一列,或者您可以使用模型中的 displayName
属性指定列。
protected string $displayName = 'display_name';
获取主键
获取主键。
$primaryKeys = $model->getPrimaryKey();
获取模式
获取 表模式。
$tableSchema = $model->getSchema();
获取表
获取表名。
$table = $model->getTable();
默认情况下,表名将是模型别名的蛇形形式,或者您可以使用模型中的 table
属性指定表名。
protected string $table = 'my_table';
设置别名
设置模型别名。
$alias
是一个表示模型别名的字符串。
$model->setAlias($alias);
设置显示名称
设置显示名称。
$displayName
是表示显示名称的字符串。
$model->setDisplayName($displayName);
设置表
设置表名。
$table
是表示表名的字符串。
$model->setTable($table);
实体
获取实体类
获取实体类。
$entityClass = $model->getEntityClass();
模型将使用 实体定位器 通过模型别名查找实体,或者您可以在模型中使用 entityClass
属性指定类。
protected string $entityClass = MyEntity::class;
加载到
将包含的数据加载到实体中。
$entity
是一个 实体。$contain
是一个包含要包含的关联关系的数组。
$model->loadInto($entity, $contain);
创建新空实体
构建一个新的空 实体。
$entity = $model->newEmptyEntity();
创建实体
使用数据构建一个新的 实体。
$data
是一个包含数据的数组。$options
是一个包含实体选项的数组。associated
是一个包含要解析的关联关系的数组,默认为 null。parse
是一个布尔值,指示是否解析用户数据,默认为 true。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。validate
是一个布尔值,指示是否验证用户数据,默认为 true。clean
是一个布尔值,指示是否清理实体,默认为 false。new
是一个布尔值,指示是否将实体标记为新创建,默认为 null。
$entity = $model->newEntity($data, $options);
创建多个实体
使用用户数据构建多个新实体。
$data
是一个包含数据的数组。$options
是一个包含实体选项的数组。associated
是一个包含要解析的关联关系的数组,默认为 null。parse
是一个布尔值,指示是否解析用户数据,默认为 true。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。validate
是一个布尔值,指示是否验证用户数据,默认为 true。clean
是一个布尔值,指示是否清理实体,默认为 false。new
是一个布尔值,指示是否将实体标记为新创建,默认为 null。
$entities = $model->newEntities($data, $options);
修补实体
使用用户数据更新实体。
$entity
是一个 实体。$data
是一个包含数据的数组。$options
是一个包含实体选项的数组。associated
是一个包含要解析的关联关系的数组,默认为 null。parse
是一个布尔值,指示是否解析用户数据,默认为 true。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。validate
是一个布尔值,指示是否验证用户数据,默认为 true。clean
是一个布尔值,指示是否清理实体,默认为 false。new
是一个布尔值,指示是否将实体标记为新创建,默认为 null。
$model->patchEntity($entity, $data, $options);
修补多个实体
使用用户数据更新多个实体。
$entities
是一个包含实体的数组。$data
是一个包含数据的数组。$options
是一个包含实体选项的数组。associated
是一个包含要解析的关联关系的数组,默认为 null。parse
是一个布尔值,指示是否解析用户数据,默认为 true。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。validate
是一个布尔值,指示是否验证用户数据,默认为 true。clean
是一个布尔值,指示是否清理实体,默认为 false。new
是一个布尔值,指示是否将实体标记为新创建,默认为 null。
$model->patchEntities($entities, $data, $options);
查询方法
删除
删除实体
$entity
是一个 实体。$options
是一个包含删除选项的数组。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。cascade
是一个布尔值,表示是否级联删除,默认为 true。
$result = $model->delete($entity, $options);
删除全部
删除所有匹配条件的行。
$conditions
是一个数组或字符串,表示 where 条件。
$affectedRows = $model->deleteAll($conditions);
此方法不会使用回调或级联到相关数据。
删除多个
删除多个实体。
$entities
是一个包含实体的数组。$options
是一个包含删除选项的数组。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。cascade
是一个布尔值,表示是否级联删除,默认为 true。
$result = $model->deleteMany($entities, $options);
存在
确定是否存在匹配的行。
$conditions
是一个数组或字符串,表示 where 条件。
$exists = $model->exists($conditions);
查找
创建一个新的 选择查询。
$data
是一个包含查询数据的数组。connectionType
是一个表示连接类型的字符串,默认为self::READ
。fields
是一个数组或字符串,表示要选择的字段。contain
是一个字符串或数组,包含要包含的关系。join
是一个包含要连接的表的数组。conditions
是一个数组或字符串,表示 where 条件。orderBy
是一个数组或字符串,表示要排序的字段。groupBy
是一个数组或字符串,表示要分组的字段。having
是一个数组或字符串,表示 having 条件。limit
是一个数字,表示查询限制。offset
是一个数字,表示查询偏移。epilog
是一个字符串,表示查询的后续部分。autoFields
是一个布尔值,表示是否启用自动字段。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。
$query = $model->find($data);
获取
检索单个实体。
$primaryValues
是一个字符串、整数或数组,包含主键值。$data
是一个包含查询数据的数组。connectionType
是一个表示连接类型的字符串,默认为self::READ
。fields
是一个数组或字符串,表示要选择的字段。contain
是一个字符串或数组,包含要包含的关系。join
是一个包含要连接的表的数组。epilog
是一个字符串,表示查询的后续部分。autoFields
是一个布尔值,表示是否启用自动字段。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。
$entity = $model->get($primaryValues, $data);
保存
保存一个 实体。
$entity
是一个 实体。$options
是一个包含保存选项的数组。checkExists
是一个布尔值,表示是否检查新实体是否存在,默认为 true。checkRules
是一个布尔值,表示是否验证 规则集,默认为 true。saveRelated
是一个布尔值,表示是否保存相关数据,默认为 true。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。clean
是一个布尔值,表示是否在保存后清理实体,默认为 true。
$result = $model->save($entity, $options);
保存多个
保存多个实体。
$entities
是一个包含实体的数组。$options
是一个包含保存选项的数组。checkExists
是一个布尔值,表示是否检查新实体是否存在,默认为 true。checkRules
是一个布尔值,表示是否验证 规则集,默认为 true。saveRelated
是一个布尔值,表示是否保存相关数据,默认为 true。events
是一个布尔值,表示是否触发模型/行为事件,默认为 true。clean
是一个布尔值,表示是否在保存后清理实体,默认为 true。
$result = $model->saveMany($entities, $options);
更新全部
更新所有匹配条件的行。
$data
是一个包含要更新值的数组。$conditions
是一个数组或字符串,表示 where 条件。
$affectedRows = $model->updateAll($data, $conditions);
此方法不会使用回调。
关系方法
添加关系
添加一个 关系。
$relationship
是一个 关系。
$model->addRelationship($relationship);
获取关系
获取一个 关系。
$name
是一个字符串,表示关系名称。
$relationship = $model->getRelationship($name);
获取所有关系
获取所有关系。
$relationships = $model->getRelationships();
存在关系
确定是否存在 关系。
$name
是一个字符串,表示关系名称。
$hasRelationship = $model->hasRelationship($name);
删除关系
删除现有的 关系。
$name
是一个字符串,表示关系名称。
$model->removeRelationship($name);
行为方法
添加行为
向 模型 添加一个 行为。
$name
是一个字符串,表示行为名称。$options
是一个包含行为选项的数组。
$model->addBehavior($name, $options);
获取行为
获取一个已加载的 行为。
$name
是一个字符串,表示行为名称。
$behavior = $model->getBehavior($name);
存在行为
确定 模型 是否具有 行为。
$name
是一个字符串,表示行为名称。
$hasBehavior = $model->hasBehavior($name);
删除行为
从 模型 中删除一个 行为。
$name
是一个字符串,表示行为名称。
$model->removeBehavior($name);
验证
获取规则
获取模型 RuleSet。
$rules = $model->getRules();
您可以通过在您的模型中指定一个 buildRules
回调函数 来构建自定义规则。
获取验证器
获取模型 Validator。
$validator = $model->getValidator();
您可以通过在您的模型中指定一个 buildValidation
回调函数 来构建自定义验证器。
设置规则
设置模型 RuleSet。
$rules
是一个 RuleSet。
$model->setRules($rules);
设置验证器
设置模型 Validator。
$validator
是一个 Validator。
$model->setValidator($validator);
回调
回调函数可以在您的模型中定义,允许在模型操作的各种点执行或撤销更改。
删除后
在实体被删除后执行回调。
use Fyre\Entity\Entity; public function afterDelete(Entity $entity) {}
如果此方法返回 false,则不会执行删除操作,事务将回滚。
查找后
在执行查找查询后执行回调。
use Fyre\ORM\Result; public function afterFind(Result $result): Result {}
规则后
在处理模型规则后执行回调。
use Fyre\Entity\Entity; public function afterRules(Entity $entity) {}
如果此方法返回 false,则不会执行保存操作。
解析后
在将用户数据解析为实体后执行回调。
use Fyre\Entity\Entity; public function afterParse(Entity $entity) {}
保存后
在实体保存到数据库后执行回调。
use Fyre\Entity\Entity; public function afterSave(Entity $entity) {}
如果此方法返回 false,则不会执行保存操作,事务将回滚。
删除前
在实体删除前执行回调。
use Fyre\Entity\Entity; public function beforeDelete(Entity $entity) {}
如果此方法返回 false,则不会执行删除操作。
查找前
在执行查找查询前执行回调。
use Fyre\ORM\Query; public function beforeFind(Query $query): Query {}
解析前
在将用户数据解析为实体前执行回调。
use ArrayObject; public function beforeParse(ArrayObject $data) {}
规则前
在规则回调之前。
use Fyre\Entity\Entity; public function beforeRules(Entity $entity) {}
如果此方法返回 false,则不会执行保存操作。
保存前
在实体保存到数据库前执行回调。
use Fyre\Entity\Entity; public function beforeSave(Entity $entity) {}
如果此方法返回 false,则不会执行保存操作,事务将回滚。
构建规则
use Fyre\ORM\RuleSet; public function buildRules(RuleSet $rules): RuleSet { return $rules; }
构建验证
use Fyre\Validation\Validator; public function buildValidation(Validator $validator): Validator { return $validator; }
查询
获取模型
获取 Model。
$model = $query->getModel();
删除
类 \Fyre\ORM\Queries\DeleteQuery
扩展了 DeleteQuery 类。表和别名将自动从 Model 中设置。
$model->deleteQuery() ->where($conditions) ->execute();
插入
类 \Fyre\ORM\Queries\InsertQuery
扩展了 InsertQuery 类。表将自动从 Model 中设置。
$model->insertQuery() ->values($values) ->execute();
替换
类 \Fyre\ORM\Queries\ReplaceQuery
扩展了 ReplaceQuery 类。表将自动从 Model 中设置。
$model->replaceQuery() ->values($values) ->execute();
选择
类 \Fyre\ORM\Queries\SelectQuery
扩展了 SelectQuery 类,同时提供了几个额外的方法和关系和实体映射的包装器。表和别名将自动从 Model 中设置,字段名将自动作为别名。
$model->selectQuery() ->select($fields) ->where($conditions) ->execute();
所有
以数组形式获取结果。
$results = $query->all();
清除结果
清除缓冲结果。
$query->clearResult();
包含
设置包含关系。
$contain
是一个字符串或数组,包含要包含的关系。$overwrite
是一个布尔值,表示是否要覆盖现有包含项,默认为 false。
$query->contain($contain, $overwrite);
计数
获取结果计数。
$count = $query->count();
启用自动字段
$autoFields
是一个布尔值,表示是否启用自动字段,默认为 true。
$query->enableAutoFields($autoFields);
第一
获取第一个结果。
$entity = $query->first();
获取别名
获取别名。
$alias = $query->getAlias();
获取连接类型
获取连接类型。
$connectionType = $query->getConnectionType();
获取包含
获取包含数组。
$contain = $query->getContain();
获取匹配
获取匹配数组。
$matching = $query->getMatching();
获取结果
获取查询结果。
$result = $query->getResult();
与内部连接
INNER JOIN一个关系表。
$contain
是一个表示要包含的关联关系的字符串。$conditions
是一个包含额外连接条件的数组。
$query->innerJoinWith($contain, $conditions);
与左连接
LEFT JOIN一个关系表。
$contain
是一个表示要包含的关联关系的字符串。$conditions
是一个包含额外连接条件的数组。
$query->leftJoinWith($contain, $conditions);
匹配
INNER JOIN一个关系表并加载匹配数据。
$contain
是一个表示要包含的关联关系的字符串。$conditions
是一个包含额外连接条件的数组。
$query->matching($contain, $conditions);
匹配数据将通过_matchingData
属性访问。
不匹配
LEFT JOIN一个关系表并排除匹配行。
$contain
是一个表示要包含的关联关系的字符串。$conditions
是一个包含额外连接条件的数组。
$query->notMatching($contain, $conditions);
更新
\Fyre\ORM\Queries\UpdateQuery
类扩展了UpdateQuery类。表将自动从Model设置。
$model->updateQuery() ->set($values) ->where($conditions) ->execute();
获取别名
获取别名。
$alias = $query->getAlias();
批量更新
\Fyre\ORM\Queries\UpdateBatchQuery
类扩展了UpdateBatchQuery类。表和别名将自动从Model设置,字段名将自动别名。
$model->updateBatchQuery() ->set($values, $keys) ->execute();
获取别名
获取别名。
$alias = $query->getAlias();
结果
\Fyre\ORM\Result
类封装了ResultSet类,同时提供了额外的实体映射和预加载包含结果的处理。
关系
属于
$name
是一个字符串,表示关系名称。$data
是一个包含关系数据的数组。className
是一个表示目标别名的字符串,默认为关系名称。propertyName
是一个表示实体属性名称的字符串,默认为单数关系名称的蛇形形式。foreignKey
是一个表示当前表中外键列的字符串,默认为目标别名的蛇形单数名称(后缀为"_id")。bindingKey
是一个表示目标表中匹配列的字符串,默认为主键。strategy
是一个表示选择策略的字符串,默认为"join"。conditions
是一个包含额外条件的数组。
$model->belongsTo($name, $data);
拥有多个
$name
是一个字符串,表示关系名称。$data
是一个包含关系数据的数组。className
是一个表示目标别名的字符串,默认为关系名称。propertyName
是一个表示实体属性名称的字符串,默认为关系名称的蛇形形式。foreignKey
是一个表示目标表中外键列的字符串,默认为当前别名的蛇形单数名称(后缀为"_id")。bindingKey
是一个表示当前表中匹配列的字符串,默认为主键。strategy
是一个表示选择策略的字符串,默认为"select"。conditions
是一个包含额外条件的数组。dependent
是一个布尔值,表示是否递归删除相关数据,默认为false。
$model->hasMany($name, $data);
拥有一个
$name
是一个字符串,表示关系名称。$data
是一个包含关系数据的数组。className
是一个表示目标别名的字符串,默认为关系名称。propertyName
是一个表示实体属性名称的字符串,默认为单数关系名称的蛇形形式。foreignKey
是一个表示目标表中外键列的字符串,默认为当前别名的蛇形单数名称(后缀为"_id")。bindingKey
是一个表示当前表中匹配列的字符串,默认为主键。strategy
是一个表示选择策略的字符串,默认为"join"。conditions
是一个包含额外条件的数组。dependent
是一个布尔值,表示是否递归删除相关数据,默认为false。
$model->hasOne($name, $data);
多对多
$name
是一个字符串,表示关系名称。$data
是一个包含关系数据的数组。className
是一个表示目标别名的字符串,默认为关系名称。through
是一个表示连接别名的字符串,默认为当前别名和关系名称的连接形式(按字母顺序排序)。propertyName
是一个表示实体属性名称的字符串,默认为关系名称的蛇形形式。foreignKey
是一个表示连接表中外键列的字符串,默认为当前别名的蛇形单数名称(后缀为"_id")。foreignKey
是一个表示连接表中目标外键列的字符串,默认为关系名称的蛇形单数名称(后缀为"_id")。bindingKey
是一个表示当前表中匹配列的字符串,默认为主键。strategy
是一个表示选择策略的字符串,默认为"select"。conditions
是一个包含额外条件的数组。
$model->manyToMany($name, $data);
在加载数据时,连接表数据将通过_joinData
属性访问。
行为注册表
use Fyre\ORM\BehaviorRegistry;
添加命名空间
为自动加载行为添加命名空间。
$namespace
是一个表示命名空间的字符串。
BehaviorRegistry::addNamespace($namespace);
清除
清除所有命名空间和行为。
BehaviorRegistry::clear();
查找
查找行为类。
$name
是一个字符串,表示行为名称。
$className = BehaviorRegistry::find($name);
获取命名空间
获取命名空间。
$namespaces = BehaviorRegistry::getNamespaces();
检查命名空间是否存在
检查命名空间是否存在。
$namespace
是一个表示命名空间的字符串。
$hasNamespace = BehaviorRegistry::hasNamespace($namespace);
加载
加载行为。
$name
是一个字符串,表示行为名称。$model
是一个Model。$options
是一个包含行为选项的数组,默认为[]。
$behavior = BehaviorRegistry::load($name, $model, $options);
移除命名空间
移除一个命名空间。
$namespace
是一个表示命名空间的字符串。
$removed = BehaviorRegistry::removeNamespace($namespace);
行为
行为必须使用 addBehavior
方法附加到 模型 上。加载的行为可以通过将类名作为 $this
的属性来在 模型 中访问。
$this->addBehavior('MyBehavior'); $behavior = $this->MyBehavior;
可以通过扩展 \Fyre\ORM\Behavior
来创建自定义行为,将类名后缀为 "Behavior",并确保 __construct
方法接受 模型 作为参数(可选地,还可以作为第二个参数接受一个 $options
数组)。
行为还可以包含在模型操作期间执行的 回调。
获取配置
获取配置选项。
$config = $behavior->getConfig();
获取模型
获取 Model。
$model = $behavior->getModel();
时间戳
时间戳行为提供了一种简单的方法,在通过模型保存数据时自动更新创建/修改时间戳。
$options
是一个包含行为选项的数组。createdField
是表示创建字段名称的字符串,默认为 "created"。modifiedField
是表示修改字段名称的字符串,默认为 "modified"。
$model->addBehavior('Timestamp', $options);
规则
添加
添加一个规则。
$rule
是一个 Closure,接受一个 实体 作为第一个参数,如果验证失败应返回 false。
$rules->add($rule);
存在于
创建一个 "存在于" 规则。
$fields
是包含字段的数组。$name
是关系的名称。$options
是包含规则选项的数组。targetFields
是包含要在目标表中匹配的字段的数组,默认为主键。callback
是一个 Closure,接受一个 SelectQuery 作为参数。allowNullableNulls
是一个布尔值,指示是否允许可为空的空值,默认为 false。message
是表示错误信息的字符串,默认为Lang::get('RuleSet.existsIn')
。
$rules->existsIn($fields, $name, $options);
是干净的
创建一个 "是干净的" 规则。
$options
是包含规则选项的数组。$fields
是包含字段的数组。message
是表示错误信息的字符串,默认为Lang::get('RuleSet.isClean')
。
$rules->isClean($fields, $options);
是唯一的
创建一个 "是唯一的" 规则。
$fields
是包含字段的数组。$options
是包含规则选项的数组。callback
是一个 Closure,接受一个 SelectQuery 作为参数。allowMultipleNulls
是一个布尔值,指示是否允许多个空值,默认为 false。message
是表示错误信息的字符串,默认为Lang::get('RuleSet.isUnique')
。
$rules->isUnique($fields, $options);
验证
验证一个 实体。
$entity
是一个 实体。
$rules->validate($entity);