这是我之前的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);
我不知道在哪里进行文件验证和模型中的方法。
请建议我继续前进的方式。
答案 0 :(得分:3)
在模型中
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
}