Yii2开发技巧集合[不定期更新]

689 查看

Yii内置过滤器集合

参照 http://www.yiiframework.com/doc-2.0/yii-validators-validator.html#$builtInValidators-detail

phparray $builtInValidators = [
    'boolean' => 'yii\validators\BooleanValidator', 
    'captcha' => 'yii\captcha\CaptchaValidator', 
    'compare' => 'yii\validators\CompareValidator', 
    'date' => 'yii\validators\DateValidator', 
    'default' => 'yii\validators\DefaultValueValidator', 
    'double' => 'yii\validators\NumberValidator', 
    'email' => 'yii\validators\EmailValidator', 
    'exist' => 'yii\validators\ExistValidator', 
    'file' => 'yii\validators\FileValidator', 
    'filter' => 'yii\validators\FilterValidator', 
    'image' => 'yii\validators\ImageValidator', 
    'in' => 'yii\validators\RangeValidator', 
    'integer' => ['class' => 'yii\validators\NumberValidator', 'integerOnly' => true], 
    'match' => 'yii\validators\RegularExpressionValidator', 
    'number' => 'yii\validators\NumberValidator', 
    'required' => 'yii\validators\RequiredValidator', 
    'safe' => 'yii\validators\SafeValidator', 
    'string' => 'yii\validators\StringValidator', 
    'trim' => ['class' => 'yii\validators\FilterValidator', 'filter' => 'trim', 'skipOnArray' => true], 
    'unique' => 'yii\validators\UniqueValidator', 
    'url' => 'yii\validators\UrlValidator'
]

php的array_merge和Yii的ArrayHelper::merge

从参数上看,Yii的ArrayHelper::merge只支持同时合并两个数组,而php的array_merge则可以同时合并多个,似乎是php的比较好用。但要注意的是,php的array_merge函数在合并一个数字索引的数组时,会将索引连续起来,这在合并一些从数据库取出来的以id为索引的数组时会比较坑,因为输出结果中的索引突然就变得整齐了。如果这个索引还会被用于输入的话(比如下拉选项),数据就会出错。而Yii的ArrayHelper::merge就是简单合并,不会重整索引。

参见http://php.net/manual/zh/function.array-merge.php