PDA

View Full Version : اعتبار سنجی در زمان آپدیت کردن یک رکورد



rahahost
سه شنبه 18 شهریور 1393, 19:08 عصر
با سلام و احترام خدمت دوستان و اساتید محترم .


من برای اضافه کردن کاربر درون سایت یک سری اعتبارسنجی ها انجام دادم که به شکل زیر هست :



public static $rules = array(
'fname' => 'min:3',
'lname' =>'min:3',
'sex' =>'max:1',
'email' =>'required|email|unique:users',
'username' =>'unique:users',
'password' =>'required|alpha_num|between:6,12|confirmed',
'password_confirmation' =>'required|alpha_num|between:6,12',
'image' => 'mimes:jpeg,bmp,png,jpg,gif|max:300',
'tellphone' =>'between:10,12',
'mobile' =>'required|between:10,12',
'address' =>'min:10',
'postal_code' =>'alpha_num|min:10',
'country' =>'min:3',
'state' =>'min:3',
'city' =>'min:3',
'role' =>'min:3',
'active' =>'boolean',
);


برای ثبت نام اولیه ، کاربر فقط باید فیلدهای ( email , password , password_confirmation , mobile) رو پر کنه و این فیلدها الزامی هست اما بقیه فیلدها در زمان ثبت نام الزامی نیست .
دو فیلد ( email , username ) همونطور که معلومه ، اختصاصی برای یک کربر هست و خوده لاراول چک میکنه این مورد رو .

حالا مشکل اینجاست که اگر کاربر یکبار اطلاعات این دو فیلد رو پر کرده باشه و ثبت شده باشه ، برای دفعات بعدی به مشکل بر میخوره و وقتی بخواد مجدد اطلاعاتش رو بروز کنه ، لاراول این اخطار رو میده که ( این نام کاربری تکراری است ، لطفا نام دیگری را انتخاب کنید ! )!


راهه حلی برای این مشکلم پیشنهاد میدید ؟

البته یکی از راه ها اینه که دستی چک کنم و موقع آپدیت شدن این دو مورد ، از اعتبارسنجی لاراول استفاده نکنم که منطقی نیست !

rahahost
جمعه 21 شهریور 1393, 13:23 عصر
بسکه تالار لاراول فعاله ، ادم می مونه کدوم راهه حله پیشنهادی رو انجام بده :D

به جوابم رسیدم ، جواب رو میذارم ، اگر کسی به همین مشکل برخورد بتونه رفعش کنه ( البته چندین راهه حل پیدا کردم که به نظر خودم بهترینش همین که می نویسم ) :

if($user->username == $username) { User::$rules['username'] = 'required'; }

Mahdi-563
یک شنبه 23 شهریور 1393, 22:45 عصر
سلام دوست عزیز

بله درسته این فروم بیشتر جنبه تبلیغاتی پیدا کرده تا آموزشی بدتر از همه متاسفانه مدیران بخش php افرادی هستند که روی یک سری فریم ورک خاص تخصص کمی دارن

از طرفی اینجا ایرانه اگه کسی codeigniter کار کنه فکر می کنه شاه کار کرده چه برسه لاراول که منبع فارسی زیادی نداره

پیشنهاد می کنم سوالات را اینجا بپرسی

http://stackoverflow.com/questions/tagged/laravel