我有文件上传选项的形式。我在模型中添加了字段,并添加了验证规则,如下所示。
[['file1'], 'file', 'skipOnEmpty' => false, 'extensions' => 'pdf,png,jpg', 'maxSize' => "10485760", 'tooBig' => "Maximum upload file size is 10MB"]
在编辑模式下,不需要文件字段。因此,我需要跳过更新场景所需的字段验证,但如果用户选择更新形式的文件,则需要验证扩展名,大小。
我改变了规则如下:
[['file1'], 'file', 'skipOnEmpty' => false, 'extensions' => 'pdf,png,jpg', 'maxSize' => "10485760", 'tooBig' => "Maximum upload file size is 10MB", "on" => ["insert"]],
[['file1'], 'file', 'skipOnEmpty' => true, 'extensions' => 'pdf,png,jpg', 'maxSize' => "10485760", 'tooBig' => "Maximum upload file size is 10MB", "on" => ["update"]],
但是它仍然要求以编辑形式上传文件。
谢谢
try below rules
[['file1'], 'file', 'skipOnEmpty' => true, 'extensions' => 'pdf,png,jpg', 'maxSize' => "10485760", 'tooBig' => "Maximum upload file size is 10MB"],
[['file1'], 'required', 'on' => 'insert'],
在创建操作中添加场景,而不是在更新
$model->scenario = 'insert';