【问题标题】:Validation rule for file upload in update Scenario更新场景中文件上传的验证规则
【发布时间】:2016-10-30 17:57:49
【问题描述】:

我在表单中有文件上传选项。我在模型中添加了字段并添加了如下的 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"]], 

但它仍然要求以编辑形式上传文件。

谢谢

【问题讨论】:

  • 显示控制器的相应动作。

标签: php validation yii2


【解决方案1】:

试试下面的规则

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

在您的创建操作中添加场景而不是在更新中

$model->scenario = 'insert';

【讨论】:

  • 它不工作。它允许在插入模式下使用空文件。我设置了“插入”而不是“文件创建”
  • 我有和你一样的代码,除了$model->scenario = 'insert';,因为它不需要提及。
猜你喜欢
  • 2013-06-29
  • 2017-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多