我在模型
中进行所有验证我的规则是
public static $rules = array(
'VehicleNumber' => 'required|unique:vehicle',
'NumberSeats' => 'required',
'VehicleType' => 'required',
'MaximumAllowed' => 'numeric|max:3',
'VehicleCode' => 'required|unique:vehicle');
}
但是为了更改文件名并检查其大小,我正在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());
}
}
条件
if($InsurancePhoto && Input::file('InsurancePhoto')->getSize() < '1000')
如果图像存储失败,则不会设置属性。
但在这种情况下如何将错误抛给用户?
答案 0 :(得分:0)
您可以抛出异常并显示错误消息。
<强>模型强>
if($InsurancePhoto && Input::file('InsurancePhoto')->getSize() < '1000') {
// process image
} else {
throw new \Exception('Error message');
}
在控制器(您调用验证)中,您可以捕获此异常并将其打印给用户。
答案 1 :(得分:0)
getSize()返回整数,因此您不应该使用字符串进行比较,因为您已在单引号中写入1000。您可以在laravel中创建自己的自定义验证。请查看此链接stackoverflow和http://culttt.com/2014/01/20/extending-laravel-4-validator/