Carbon(laravel)处理无效日期

问题描述:

我有一个相当简单的问题..我使用Carbon::parse($date)函数和$date = '15.15.2015'。当然,它不能返回有效的字符串,因为没有第15个月。但是,我怎么能“忽略”错误信息呢? 大会像Carbon(laravel)处理无效日期

if (Carbon::parse($date) != error) Carbon::parse($date); 
else echo 'invalid date, enduser understands the error message'; 

Laravel's validation。创建一个验证这样的:

 protected function validator(array $data) 
{ 
    //$data would be an associative array like ['date_value' => '15.15.2015'] 
    $message = [ 
     'date_value.date' => 'invalid date, enduser understands the error message' 
    ]; 
    return Validator::make($data, [ 
     'date_value' => 'date', 
    ],$message); 
} 

叫他使用权之前,你的约会:

$this->validator(['date_value' => $date])->validate(); 
// $this->validator(request()->all())->validate(); you can pass the whole request if fields names are the same 

Carbon::parse($date); 

您可以将您的所有需要​​的字段验证和应用多个验证处理每封邮件,或使用默认的消息。如果你正在验证用户的输入,这将是方式

+0

谢谢!我在哪里放置'受保护的功能'? –

+0

接收'$ date'的控制器内部或您想用来验证传入请求/数据的任何文件。请记住使用:'使用Illuminate \ Support \ Facades \ Validator;' – aaron0207

+0

非常感谢!是的,得到了​​消息,并自己查看它。它的工作原理,非常感谢你! –

你能赶上由碳这样引发的异常:使用前

try { 
    Carbon::parse($date); 
} catch (\Exception $e) { 
    echo 'invalid date, enduser understands the error message'; 
} 
+0

谢谢,我在哪里包括这一块代码? –

+0

无论您想要验证日期并显示错误消息,您都应该将其包括在内,这取决于您在该请求上还在做什么。我需要你的整个控制器功能,以提供更有帮助的答案。 – Tudor