ylab / validation
Bitrix 的 illuminate/validation (Laravel) 库的模块包装器
Requires
- php: >=5.6.4
- composer/installers: ~1.0
- illuminate/validation: >=5.4
This package is not auto-updated.
Last update: 2024-09-26 01:31:30 UTC
README
该模块是 Laravel 验证库的包装器。
- php: >=5.6.4
- Bitrix: >= 17.0.0
- illuminate/validation: >=5.4
从 github 安装
-
需要通过 composer 安装
illuminate/validation
php composer.phar install illuminate/validation 5.5
-
在文件
local/php_interface/init.php
中连接 composer 自动加载器require_once(dirname(__FILE__) . '/../vendor/autoload.php');
-
复制仓库
cd local/modules git clone git@github.com:ylabio/ylab.validation.git cd ylab.validation
-
在
local/modules
文件夹中克隆模块仓库,之后,需要在管理员面板中安装模块:桌面 -> 市场place -> 已安装解决方案
.
通过 composer 安装
composer require ylab/validation:dev-master
为了在 local/modules
中安装,需要在 composer.json 中添加
"extra": { //путь до папки local, например ../local, если composer.json лежит в папке local "bitrix-dir": "" }
使用
要实现具有验证的组件,可以使用以下示例代码: local/modules/ylab.validation/install/components/ylab/validation.test/class.php
.
在此示例中,组件类继承自抽象类 YLab\Validation\ComponentValidation
,该类负责初始化验证对象并强制实现 rules()
方法。
在抽象类的构造函数中,验证器对象初始化如下
$this->oValidator = ValidatorHelper::makeCustomValidator([], $this->rules(), $sFile, LANGUAGE_ID);
在 ValidatorHelper::makeCustomValidator()
方法中,连接组件和模块的语言文件。模块的语言文件包含标准错误描述,继承的组件可以替换预置的错误信息。
组件示例
自定义验证规则
可以在组件中创建自定义验证规则,在单独的方法或 executeComponent()
方法中。
/** * При необходимости в компоненте можно реализовать дополнительные правила валидации, например, данный валидатор * проверяет наличие пользователя в базе данных по ID. */ $this->oValidator->addExtension('user_exists', function($attribute, $value, $parameters, $validator) { $arValidate = UserTable::getList([ 'select' => ['ID'], 'filter' => ['=ID' => $value], 'limit' => 1 ])->fetch(); return $arValidate['ID'] ? true : false; });