با سلام به همهی دوستان
ابتدا با دستور زیر یه Validation جدید میسازیم:
php artisan make:rule Nationalcode
حالا میریم به آدرس : app/Rules/Nationalcode.php و کد زیر رو توش قرار میدیم:
<?php namespace App\Rules; use Illuminate\Contracts\Validation\Rule; class Nationalcode implements Rule { /** * Determine if the validation rule passes. * * @param string $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value) { if(!preg_match('/^[0-9]{10}$/',$value)) return false; for($i=0;$i<10;$i++) if(preg_match('/^'.$i.'{10}$/',$value)) return false; for($i=0,$sum=0;$i<9;$i++) $sum+=((10-$i)*intval(substr($value, $i,1))); $ret=$sum%11; $parity=intval(substr($value, 9,1)); if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity)) return true; return false; } /** * Get the validation error message. * * @return string */ public function message() { return 'کد ملی اشتباه است'; } }
حالا جایی که دارین ولیدیت میکنید اینجوری بزنید:
ابتدای صفحه:
use App\Rules\Nationalcode;
بعد هم که اینجوری صداش میزنیم:
'codemeli' => ['required', new Nationalcode],
بسیار عالی و با توضیح ساده ممنونم رفیق
سلام
پیروز باشید