1
こんにちは私のlaravelプロジェクトの入力データのカスタム検証を作成しています。私はCarbon :: createFromDate() - > ageを使用して、ユーザーの年齢を取得し、彼が16歳以上かどうかをチェックします。分離記号は、分離記号が Carbon :: createFromDate() - >年齢でInvalidArgumentExceptionが発生しました
$の韓国は年です(1996など。)$のmiesiacは月と$ dzienは日です。 Peselはポーランド人のユニークなID番号です。 「年:21586738427月:1900167日:9001727」
PESELから私は、私はいくつかの大きな数字を取得していると私は、彼らはDDです。ここ何を意味するのか分からない日付(年、月、日)を取得します
はここに私のAppServiceProviderのコード
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Carbon\Carbon;
use Validator;
use Log;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//Custom validator for pesel validation
Validator::extend('pesel',function($attribute,$value,$parameters)
{
$v = $value;
//check if psesel is 11 chars long
if (strlen($v) != 11)
{
Log::info("Pesel is not 11 chars long");
return;
}
//check whether all chars are numbers
$aInt = array();
for($i = 0; $i < 11; $i++)
{
$val = substr($v,$i+1);
$valInt = (int) $val;
$aInt[$i] = $valInt;
if(is_nan($aInt[$i]))
{
Log::info("User inserted invalid number");
return;
}
}
//check control sum
$wagi = [1,3,7,9,1,3,7,9,1,3,1];
$sum = 0;
for($i = 0;$i < 11;$i++)
{
$sum += $wagi[$i]*$aInt[$i];
if(Log::info(($sum%10)!=0))
{
return;
}
//count the year,month,and day from pesel
$rok = 1900+$aInt[0]*10+$aInt[1];
if($aInt[2]>=2 && $aInt[2]<8)
{
$rok += floor($aInt[2]/2)*100;
}
if($aInt[2]>=8)
{
$rok -= 100;
}
$miesiac = ($aInt[2]%2)*10+$aInt[3];
$dzien = $aInt[4]*10+$aInt[5];
Log::info("Parsing the date in carbon");
//validate whether user is 16 years or more
$userAge = Carbon::createFromDate($rok, $miesiac, $dzien,'Europe/Warsaw')->age;
if($userAge < 16)
{
Log::info("user is not 16 or more");
return;
}
}
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
あなたは' $のrok'、 '$ miesiac'&の値を指定することができる作品
あるべき 間違っていますdizen'? –
$ rokは1年です(たとえば1996年)$ miesiacは月、$ dzienは日です。 Peselはポーランド人のユニークなID番号です。 peselから日付(年、月、日)を取得 –
本当に、それらの3つすべてを 'dd()'でき、あなたの質問にその結果を追加できますか? –