در لاراول، میتونیم از ولیدیشن "unique
" برای تأیید اینکه یک آدرس ایمیل در زمانی که کاربر در حال بهروزرسانی حساب خودش هست، استفاده کنیم. قانون unique
بررسی میکنه که مقدار مشخصهای که تأیید میشه از قبل در جدول پایگاه داده مشخصشده وجود نداشته باشه.
می تونیم از آن در قوانین اعتبارسنجی زیر در زمان بروزرسانی پروفایل کاربر استفاده کنیم:
'email' => 'required|email|unique:users,email,'.$user->id
همون طور که در کد بالا مشاهده می کنید قانون یکتا سه پارامتر می گیره: نام جدول، نام ستون و شناسه کاربر فعلی. در کد بالا، قانون یکتا بررسی میکنه که آدرس ایمیل در میان تمام آدرسهای ایمیل در جدول کاربران، به جز آدرس ایمیل مرتبط با کاربر فعلی (مشخص شده توسط user->id) منحصر به فرد باشه و کاربر نتونه آدرس ایمیلی رو وارد کنه که سایر کاربران قبلا ثبت کردن.
نکته مهم قابل توجه در کد بالا این هست که وقتی ایمیل کاربر را می خواهیم به روز کنیم، باید شناسه کاربر را به قانون منحصربفرد (unique validation
) منتقل کنیم تا ایمیل فعلی کاربر را نادیده بگیره و منحصر به فرد بودن ایمیل جدید رو در اطلاعات سایر کاربران بررسی کنه.