如何允许文件空外部默认控制器?

时间:2015-02-15 06:14:37

标签: validation yii

我有两个模型Quotationorder。报价和订单都包含file属性仅接受emb,dst文件格式。订单和报价都有各自的控制器。我想复制报价单。问题是,当我运行此代码时

$order=new Order();
$order->file=$quotation->file;

它说file cannot be blank
这是我的订单规则

array('colours, width, height, is_inch, garment, file', 'required','on'=>'create'),
            array('is_inch', 'numerical', 'integerOnly'=>true),
            array('width, height', 'numerical'),
            array('colours, garment, file', 'length', 'max'=>255),
            array('user_id, quotation_id', 'length', 'max'=>10),
                    array('file','file','on'=>'update','allowEmpty'=>true),
                    array('file','file','types'=>'dst,emb'),

问题是我没有对上述问题使用订单控制器操作。
问题:
有没有办法让文件为空以进行订单控制器以外的操作?

1 个答案:

答案 0 :(得分:0)

你可以使用场景,你已经使用了一个场景并且没有意识到这一点!

代码

 array('colours, width, height, is_inch, garment, file', 'required','on'=>'create'),

创建方案中需要所有这些字段,因此您可以删除该属性并使用其他方案,如

 array('colours, garment', 'required','on'=>'noFile'),

然后使用该场景制作模型

$order=new Order('noFile');

然后应该应用这些规则