【发布时间】: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'=>'required|image|mimes:jpg,png,gif|max:2000'使用 (max 而不是 size) 现在在 (validate->passes) 之后你可以像任何人一样做剩下的事情别的东西。 -
问题是我只有在验证完成后才做所有这些。而且我不知道如何将其作为一项规则
标签: php validation laravel laravel-4 laravel-validation