如何使用插入验证器为yii2所需?

Rab*_*bib 3 yii yii2

谁能有人建议如何"on" => "insert"yii2中使用验证?我用过

array('field_name', 'required', 'on'=>'insert')
Run Code Online (Sandbox Code Playgroud)

Yii1但在yii2中它不会检查我是否设置

['field_name', 'required', 'on'=>'insert']
Run Code Online (Sandbox Code Playgroud)

.有什么问题可以解释一下吗?提前致谢.

soj*_*oju 12

您应该在验证之前设置模型的场景:

$model->scenario = 'insert';
Run Code Online (Sandbox Code Playgroud)

从Yii2开始:

默认情况下,模型仅支持名为的单个方案 default

阅读更多:http://www.yiiframework.com/doc-2.0/guide-structure-models.html#scenarios


Chi*_*may 5

首先定义场景:

// scenario is set as a property
$model->scenario = 'insert';
Run Code Online (Sandbox Code Playgroud)

或者

// scenario is set through configuration
$model = new User(['scenario' => 'insert']);
Run Code Online (Sandbox Code Playgroud)

然后您可以将规则指定为:

// for single field
['field_name', 'required', 'on' => 'insert'],

// for multiple fields
[['field_name1','field_name2'], 'required', 'on' => 'insert'],
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请查看:http : //www.yiiframework.com/doc-2.0/guide-structure-models.html#validation-rules