假设我有一种可以有颜色的产品.根据产品类型,可能需要也可能不需要色域.
如果总是需要颜色,我会在产品型号中有以下内容
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时,将验证所需的颜色
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。