Как выполнить проверку загруженных файлов в модели в Laravel

Это мой предыдущий Продолжение вопроса

Я использую модель для валидации

Этим способом я отправлю значения в модель

$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

Решение

в модели

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
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]