我有两个模型Quotation
和order
。报价和订单都包含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'),
问题是我没有对上述问题使用订单控制器操作。
的问题:
有没有办法让文件为空以进行订单控制器以外的操作?
答案 0 :(得分:0)
你可以使用场景,你已经使用了一个场景并且没有意识到这一点!
代码
array('colours, width, height, is_inch, garment, file', 'required','on'=>'create'),
创建方案中需要所有这些字段,因此您可以删除该属性并使用其他方案,如
array('colours, garment', 'required','on'=>'noFile'),
然后使用该场景制作模型
$order=new Order('noFile');
然后应该应用这些规则