Class yii\base\DynamicModel

所有类 | 方法

继承yii\base\DynamicModel » yii\base\Model » yii\base\Component » yii\base\Object
可用自版本2.0

动态模型是一个模型类主要用于支持临时数据验证。

动态模型的典型用法是这样的,

public function actionSearch($name, $email)
{
    $model = DynamicModel::validateData(compact('name', 'email'), [
        [['name', 'email'], 'string', 'max' => 128],
        ['email', 'email'],
    ]);
    if ($model->hasErrors()) {
        // validation fails
    } else {
        // validation succeeds
    }
}

上面的例子展示了如何验证$name$email 的帮助下美元动态模型。validateData()方法创建一个动态模型的实例,使用给定的数据定义了属性(名称和电子邮件在这个例子中),然后调用yii\base\Model::validate().

你可以检查验证结果\yii\base\hasErrors(),像你一样做一个正常的模式。你也可以通过模型实例访问定义的动态属性,例如,$model->name and $model->email.。

或者,您可以使用下面的更“经典”的语法来执行特定数据验证:

$model = new DynamicModel(compact('name', 'email'));
$model->addRule(['name', 'email'], 'string', ['max' => 128])
    ->addRule('email', 'email')
    ->validate();

动态模型实现上述特殊数据验证功能通过支持所谓的“动态属性”。它基本上允许动态定义一个属性通过其构造函数或 defineAttribute().

公共方法

隐藏继承方法

方法描述定义在
__construct()Constructors.yii\base\DynamicModel
__get() yii\base\DynamicModel
__isset() yii\base\DynamicModel
__set() yii\base\DynamicModel
__unset() yii\base\DynamicModel
addRule()这个模型添加一个验证规则yii\base\DynamicModel
attributes() yii\base\DynamicModel
defineAttribute()定义了一个属性。yii\base\DynamicModel
undefineAttribute()未定义的属性。yii\base\DynamicModel
validateData()验证给定的数据与指定的验证规则。yii\base\DynamicModel

方法详情

__construct() public 方法

Constructors.

public void __construct ( array $attributes = [], $config = [] )
$attributesarray

动态属性(名称-值对,或名字)被定义

$configarray

配置应用到这个对象数组。

__get() public 方法

 

public void __get ( $name )
$name  

__isset() public 方法

 

public void __isset ( $name )
$name  

__set() public 方法

 

public void __set ( $name, $value )
$name  
$value  

__unset() public 方法

 

public void __unset ( $name )
$name  

addRule() public 方法

这个模型添加一个验证规则。

你也可以直接操作 \yii\base\validators来添加或删除验证规则。这种方法提供了一个捷径。

public $this addRule ( $attributes, $validator, $options = [] )
$attributesstring|array

The attribute(s)的验证规则

$validatormixed

规则的验证器。这可能是一个内置验证器名称、方法模型类的名称,一个匿名函数,或者一个确认器类的名字。

$optionsarray

选项(名称-值对)适用于验证器

return$this

模型本身

attributes() public 方法

 

public void attributes ( )

defineAttribute() public 方法

定义了一个属性。

public void defineAttribute ( $name, $value = null )
$namestring

属性名称

$valuemixed

属性值

undefineAttribute() public 方法

未定义的属性。

public void undefineAttribute ( $name )
$namestring

属性名称

validateData() public static 方法

验证给定的数据与指定的验证规则。

该方法将创建一个动态模型实例,验证数据填充它,创建指定的验证规则,然后用这些规则验证数据。

public static static validateData ( array $data, $rules = [] )
$dataarray

验证数据(名称-值对)

$rulesarray

The validation rules. Please refer to yii\base\Model::rules() on the format of this parameter.

验证规则。请参阅yii\base\Model::rules() 这个参数的格式。

returnstatic

包含数据模型实例验证

throwsyii\base\InvalidConfigException

如果没有指定一个验证规则正确。

转载于:https://my.oschina.net/u/2552765/blog/852671

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值