andrewdanilov / yii2-helpers
各种辅助工具
1.0.22
2024-02-23 20:24 UTC
Requires
- php: >=7.0
- yiisoft/yii2: ^2.0.0
README
各种辅助工具
安装
安装此扩展的首选方法是通过 composer。
运行以下命令之一
composer require andrewdanilov/yii2-helpers "~1.0.0"
或者将以下内容添加到您的 composer.json
文件的 require
部分中。
"andrewdanilov/yii2-helpers": "~1.0.0"
使用方法
ModelHelper
ModelHelper::cleanLoadedValues()
处理按规则加载到模型中的属性值的数组。清理规则由数组 $attribute_rules 中的特定属性指定。
$attribute_rules = [ 'name' => [ModelHelper::ATTR_RULE_STRIP_TAGS], 'text' => [ModelHelper::ATTR_RULE_CLEAN_JS, ModelHelper::ATTR_RULE_STRIP_TAGS], '<attribute>' => [<attr_rule1>, <attr_rule2>, <attr_rule3>, ...], '*' => [<attr_rule4>, ...], // для всех атрибутов, даже если для них уже применялось правило '?' => [<attr_rule5>, ...], // только для атрибутов, для которых не указано правило ];
如果数组 $values
中对应属性的值是字符串,则应用规则集合。如果值是数组,则规则集将递归地应用于数组中所有嵌套的字符串值元素,而不考虑其键的名称。嵌套深度不限。
可以在模型中使用 ModelHelper::cleanLoadedValues()
方法,例如,通过以下方式重写基本方法 \yii\base\Model::setAttributes()
public function setAttributes($values, $safeOnly = true) { $values = ModelHelper::cleanLoadedValues($values, [ 'title' => [ModelHelper::ATTR_RULE_STRIP_TAGS], 'text' => [ModelHelper::ATTR_RULE_CLEAN_JS], ]); parent::setAttributes($values, $safeOnly); }
ModelHelper::ATTR_RULE_CLEAN_JS
规则将删除属性值中的所有 <script>
标签,无论是自闭合的还是普通的,无论是包含在标签体内的脚本还是包含在 html 属性 src 中的。
ModelHelper::ATTR_RULE_STRIP_TAGS
规则将删除属性值中的所有 html 标签,并使用 strip_tags
函数执行。
ModelHelper::ATTR_RULE_HTML_SPECIAL_CHARS
规则将使用 htmlspecialchars()
函数将属性值中的所有 html 实体替换为其 &-等价物。
ModelHelper::getFirstError()
返回模型中发生的第一个错误,以字符串形式呈现,如果没有错误,则返回空字符串。
$model = new MyModel(); $model->some_attr = 'some_wrong_value'; $model->validate(); echo \andrewdanilov\helpers\ModelHelper::getFirstError($model);