【问题标题】:How to do Uploaded File Validations in Model in Laravel如何在 Laravel 的模型中进行上传文件验证
【发布时间】:2015-02-23 03:20:55
【问题描述】:

这是我以前的Question's Continuation

我正在使用模型进行验证

我将通过这种方式将值发送给模型

$VehicleData = Input::all();
$validation  = Validator::make($VehicleData, VehicleModel::$rules);

并使用以下规则进行验证

public static $rules = array(
        'VehicleNumber' => 'required|unique:vehicle', 
        'NumberSeats' => 'required', 
);

但现在我想验证上传文件的大小和扩展名

我尝试在SetFooAttribute的模型中做到这一点

public function setInsurancePhotoAttribute($InsurancePhoto)
{
    if($InsurancePhoto && Input::file('InsurancePhoto')->getSize() < '1000')
    {
    $this->attributes['InsurancePhoto'] = Input::get('VehicleCode') . '-InsurancePhoto.' . Input::file('InsurancePhoto')->getClientOriginalExtension();
    Input::file('InsurancePhoto')->move('assets/uploads/vehicle/', Input::get('VehicleCode') . '-InsurancePhoto.' . Input::file('InsurancePhoto')->getClientOriginalExtension());
    }
}

但我意识到这是一种不好的做法。因为它只会在验证之后调用,并且在调用 VehicleModel::create($VehicleData); 时调用

我不知道在哪里进行文件验证以及如何在模型中进行验证。

请给我建议如何进行。

【问题讨论】:

  • 如果我理解你的正确,你想要验证文件上传,比如 maxsize ,mime-type 等,如果是这样,它已经在 laravel 文档laravel.com/docs/4.2/validation#rule-size 上说明了。跨度>
  • 是的,我确实知道,它在我上面粘贴的代码中,我需要知道如何在模型中拥有它
  • 在 $rules 数组中这些是 (input_name=>the rules) 所以'InsurancePhoto'=&gt;'required|image|mimes:jpg,png,gif|max:2000' 使用 (max 而不是 size) 现在在 (validate->passes) 之后你可以像任何人一样做剩下的事情别的东西。
  • 问题是我只有在验证完成后才做所有这些。而且我不知道如何将其作为一项规则

标签: php validation laravel laravel-4 laravel-validation


【解决方案1】:

在模型中

public static $rules = array(
    'VehicleNumber'  => 'required|unique:vehicle', 
    'NumberSeats'    => 'required',
    'InsurancePhoto' => 'required|image|mimes:jpg,png,gif|max:2000'
);

在控制器中

$VehicleData = Input::all();
$validation  = Validator::make($VehicleData, VehicleModel::$rules);
    if($validation->passes())
    {
        // Input::file('InsurancePhoto') stuff
        // store the data to the db
    }

【讨论】:

  • 哇!我没有读到验证中的哑剧,.. 2000 是 kb 对吗?
  • 在 kb 是的,你可以在 php 设置中将它设置为 = 到 max_file_size。
  • 太好了。我应该完整阅读文档。谢谢朋友!
猜你喜欢
  • 2014-03-01
  • 2017-11-08
  • 2019-04-30
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 2017-11-05
  • 2010-09-09
相关资源
最近更新 更多