2017-10-19 193 views
0

我有一個相當簡單的問題..我使用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'; 

回答

1

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

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

0

你能趕上由碳這樣引發的異常:使用前

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

謝謝,我在哪裏包括這一塊代碼? –

+0

無論您想要驗證日期並顯示錯誤消息,您都應該將其包括在內,這取決於您在該請求上還在做什麼。我需要你的整個控制器功能,以提供更有幫助的答案。 – Tudor

相關問題