2016-06-28 43 views
0

我在表單中有文件上傳選項。我在模型中添加了字段並添加了如下的vlaidation規則。更新文件上傳的驗證規則場景

[['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"]], 

但它仍然要求以編輯的形式上傳文件。

感謝

+1

顯示相應控制器的作用。 –

回答

0

試試下面的規則

[['file1'], 'file', 'skipOnEmpty' => true, 'extensions' => 'pdf,png,jpg', 'maxSize' => "10485760", 'tooBig' => "Maximum upload file size is 10MB"], 
[['file1'], 'required', 'on' => 'insert'], 

附加場景在你創建操作不更新

$model->scenario = 'insert'; 
+0

它不工作。它允許插入模式下的空文件。我已經設置的,而不是「文件創建」 –

+0

「插入」請給你的控制器代碼 – vishuB

+0

請嘗試我更新的代碼 – vishuB