访问模型`photos`属性的`rules`的`types`

问题描述 投票:0回答:1

我用

Yii 1
。 (我很羞耻!)

型号:

<?php
class GalleryForm extends CFormModel
{
    public $photos;

    public function rules()
    {
        return array(
            array('photos', 'file', 'types'=>'jpg, gif, png', 'allowEmpty'=>true,),
        );
    }
}

查看:

<?php
$model = new GalleryForm();
$this->widget('CMultiFileUpload', array(
    'model'=>$model,
    'attribute'=>'photos',
    'accept'=>'jpg|gif|png',
    'max'=>10,
));

如何访问模型的

types
属性的
rules
photos

我需要在视图中使用
jpg, gif, png
字符串。

php model yii rules yii1.x
1个回答
0
投票

我找到解决方案:

$types = null;
$validators = $model->getValidators('photos');
foreach($validators as $validator) {
    if ($validator instanceof CFileValidator) {
        $types = $validator->types;
        break;
    }
}
echo $types; //jpg, gif, png

还有额外的代码:

$types = array_map('strtolower', array_map('trim', explode(',', $types)));
var_dump($types);
//array
//  0 => string 'jpg' (length=3)
//  1 => string 'gif' (length=3)
//  2 => string 'png' (length=3)
© www.soinside.com 2019 - 2024. All rights reserved.