云服务器网站建站,网站的首页需要什么内容,深圳创业补贴咨询电话,seo关键词优化软件合作Yii2中如何使用scenario场景#xff0c;使rules按不同运用进行字段验证
当创建news新闻form表单时#xff1a; 添加新闻的时候执行create动作。 必填字段#xff1a;title-标题#xff0c;picture-图片#xff0c;description-描述。 这时候在model里News.php下rules规则…Yii2中如何使用scenario场景使rules按不同运用进行字段验证
当创建news新闻form表单时 添加新闻的时候执行create动作。 必填字段title-标题picture-图片description-描述。 这时候在model里News.php下rules规则这样定义
public function rules(){return [[[title, description, picture, ], required,], ];}但是更改的时候 只需要 [[‘title’, ‘description’], ‘required’], 就可以了 少了 image 字段 表单就无法提交这个问题如果解决呢
那scenario场景就可以上场了 可以在app\models\News.php定义一个场景代码如下也可以不定义
public function scenarios(){return [create[title,description,picture],update[title,description],];}注意 如果在模型中定义了public function scenarios()那么之后对该模型只能设置自定义的这些scenario名称该案例只能使用model-scenario ‘create’、model-scenario ‘update’ 如果没有在模型中定义public function scenarios()只需on数据有相关scenario名称即可命中规则此时model-scenario 可设置成任意想要的场景名称为了简便我一般不设置 修改rules规则
public function rules(){return [[[title, description, ], required,on[create,update],message不能为空],[[picture], required, on create],];}在create动作下添加 $model-scenario create;
在update动作下添加 $model-scenario update;