php – Yii – 从控制器动态更改规则
发布时间:2020-12-13 18:29:21 所属栏目:PHP教程 来源:网络整理
导读:假设我有一种可以有颜色的产品.根据产品类型,可能需要也可能不需要色域. 如果总是需要颜色,我会在产品型号中有以下内容 public function rules(){ return array( array('colour','required') );} 但是,我希望这是动态的,具体取决于产品类型. 这应该在控制器
假设我有一种可以有颜色的产品.根据产品类型,可能需要也可能不需要色域.
如果总是需要颜色,我会在产品型号中有以下内容 public function rules() { return array( array('colour','required') ); } 但是,我希望这是动态的,具体取决于产品类型. 这应该在控制器中完成吗?我想在控制器中有类似的东西: public function actionOrder() { // .... if ($product->HasColour) { // set the colour validation to be required } else { // set the colour validation to be not required } } 解决这个问题的最佳方法是什么? 谢谢
您可以使用方案.在模型中:
class Model extends CActiveRecord { // .... public function rules() { return array( array('colour','required','on' => 'hasColour') ); } // .... } 在控制器中: public function actionOrder() { // .... $model = new Product(); if ($product->HasColour) { $model->setScenario('hasColour'); } } 因此,当模型的场景为hasColour时,将验证所需的颜色 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |