VadymSemeniuk/yii2-image-require-validator

验证所需图片的行为

dev-master 2017-03-15 11:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:36:41 UTC


README

Total Downloads Latest Stable Version Dependency Status

Yii2 Image require validator

用于验证图片的扩展,抛出 EntityToFile 模型

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一

php composer.phar require --prefer-dist vadymsemeniuk/yii2-image-require-validator "*"

或者

"vadymsemeniuk/yii2-image-require-validator": "*"

将以下内容添加到您的 composer.json 文件的 require 部分中。

用法

用法示例可能如下

您的代码必须看起来像这样

use vadymsemenykv\imageRequireValidator\ImageRequireValidator

/**
 * @property EntityToFile $image
 */
class Article extends ActiveRecord {
    public $titleImage;
    
    public function getImage()
    {
        return $this->hasOne(EntityToFile::className(), ['entity_model_id' => 'id'])
            ->andOnCondition(['t2.entity_model_name' => static::formName(), 't2.attribute' => EntityToFile::TYPE_ARTICLE_TITLE_IMAGE])
            ->from(['t2' => EntityToFile::tableName()])
            ->orderBy('t2.position DESC');
    }
    
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['titleImage'],
                ImageRequireValidator::className(),
                'errorMessage' => 'Title image cannot be blank.',
                'imageRelation' => 'image',
                'skipOnEmpty' => false
            ],
        ];
    }   
}

如果您保存多个相关图片,并且还希望验证最小或最大图片数量,则您的代码必须看起来像这样

use vadymsemenykv\imageRequireValidator\ImageRequireValidator

/**
 * @property EntityToFile $images
 */
class Article extends ActiveRecord {
    public $titleImages;
    
    public function getImages()
    {
        return $this->hasMany(EntityToFile::className(), ['entity_model_id' => 'id'])
            ->andOnCondition(['t2.entity_model_name' => static::formName(), 't2.attribute' => EntityToFile::TYPE_ARTICLE_TITLE_IMAGE])
            ->from(['t2' => EntityToFile::tableName()])
            ->orderBy('t2.position DESC');
    }
    
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['titleImages'],
                ImageRequireValidator::className(),
                'errorMessage' => 'Title images cannot be blank.',
                'validateNum' => true,
                'errorNumMinMessage' => 'Title images count should not be less than 3',
                'errorNumMaxMessage' => 'Title images count should not be more than 6',
                'minNumOfImages' => 3,
                'maxNumOfImages' => 6,
                'imageRelation' => 'images',
                'skipOnEmpty' => false
            ],
        ];
    }   
}