اعتبارسنجی کد ملی در لاراول

اعتبارسنجی کد ملی در لاراول

دسته : فریم ورک لاراول

کد محصول : 44

قیمت : رایگان

اعتبارسنجی کد ملی در لاراول در برخی از پروژه های مورد نیاز می باشد و باید صحت کد ملی سنجیده شود در این مقاله به سادگی نحوه ساخت یک Rule برای سنجیدن کد ملی را آموزش داده ایم ما فرض را بر آماده بودن پروژه گرفته ایم. در مرحله اول شما باید یک قانون (Rule) درست کنید با استفاده از دستور : php artisan make:rule Nationalcode با اجرای این کد یک فایل در مسیر app/Rules/Nationalcode.php ساخته می شود. در این فایل در قسمت passes کد ذیل را وارد می کنیم if(!preg_...


اعتبارسنجی کد ملی در لاراول در برخی از پروژه های مورد نیاز می باشد و باید صحت کد ملی سنجیده شود در این مقاله به سادگی نحوه ساخت یک Rule برای سنجیدن کد ملی را آموزش داده ایم

ما فرض را بر آماده بودن پروژه گرفته ایم. در مرحله اول شما باید یک قانون (Rule) درست کنید با استفاده از دستور :

php artisan make:rule Nationalcode

با اجرای این کد یک فایل در مسیر app/Rules/Nationalcode.php ساخته می شود.

در این فایل در قسمت passes کد ذیل را وارد می کنیم

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;

پس کد ما در این فایل به این صورت خواهد بود

<?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 'کد ملی اشتباه است';
    }
}

 

حالا در کنترلری که عملیات اعتبارسنجی رو انجام میدید اول باید این Rule رو فراخوانی کنید

use App\Rules\Nationalcode;

و در داخل validation نیز بدین صورت استفاده کنید

'codemeli' => ['required', new Nationalcode],

به همین راحتی!!! لطفا این آموزش را با دوستان خود به اشتراک بگذارید امید است در آینده آموزشهای بیشتری در دسته لاراول جاب تیم، منتشر کنیم

  • اعتبارسنجی کد ملی در لاراول را با دوستان خود به اشتراک بگذارید.
  • سوالات خود را در بخش پرسش و پاسخ این مطلب ثبت کنید.
  • مطالب خود را در جاب تیم به اسم خود ثبت کنید ارسال مطلب


ثبت سوال/پاسخ
بهزاد میرزازاده
در مورد کاربر : همیشه سخت تلاش کردم و به موفقیت های خیلی زیادی رسیدم اما دلیل نشد که متوقف بشم من برای هر روز برنامه دارم و به امید موفقیت های بزرگتر قدم بر میدارم همیشه سخت ترین مسئله ها، ساده ترین راه حل رو دارند پس بهانه جویی نباید روش کار ما برنامه نویسان باشه!!! ما می توانیم آینده را تعیین کنیم
اشتراک گذاری این مطلب
{