دوره مجازی Laravel - جلسه 13 - ویرایش کاربر و اعتبار سنجی آن



visibility  
mode_comment   ۱۳

به نام خدا و سلام. در ادامه جلسی قبلی در مورد اضافه کردن عملیات هایی به لیست کاربران قصد داریم بخش ویرایش کاربر رو تکمیل کنیم. در این جلسه مواردی رو برای به روز رسانی کلمه عبور خواهیم گفت و هم چنین اعتبار سنجی فرم ویرایش کاربر رو هم آموزش میدیم.

info توجه

این مطلب یک جلسه از آموزش لاراول مبتدی تا پیشرفته می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش لاراول مبتدی تا پیشرفته

comment دیدگاه کاربران
hadi moazen replyپاسخ

با سلام و ممنون از دوره های آموزشی عالی تون..
توی قسمت UserRequest برای وقتی که password ست نشد کاری انجام نده. فک میکنم شرطش باید یک تغییر به صورت زیر بکنه.

        if (!(request()->input(‘password’) && intval(request()->route(‘user_id’)) > 0))
hadi moazen

نه این تغییر درست نیست بخاطر اینکه زمان ثبت نام هم اگر خالی باشه بدون مشکل حسابش میکنه. مشکل من اینه که وقتی password رو unset میکنید اون خاصیت min و max اش ام unset mishe برای رفع این مشکل چ کنم ؟

ahmad mahmoudi replyپاسخ

سلام وقت بخیر استاد علی محمدی
شما در ویدیو فرمودید با یک userrequest هم برای ایجاد کاربر و هم ویرایش استفاده کنیم ولی قسمت پسورد رو کلا در هنگام ویرایش کاربر unset کردید ولی ما برای پسورد حداقل کاراکتر و حداثر تعریف کردیم آیا میشود یه کدی نوشت که پسورد الزامی نباشد ولی حداقل و حداکثر کاراکتر اعتبارسنجی شود.
در ضمن سپاس فراوان بابت زحماتی که برای دانشجویان میکشید تا ویدیو پر محتوا و کاربردی تهیه و مهیا می کنید.



 public function rules()
    {
        $rules = [
            ‘name’ => ‘required |alpha’,
            ’email’ => ‘required | email’,
            ‘password’ => ‘required | min:6 | max:12’,
        ];
        if (request()-> route(‘user_id’) && intval(request()->route(‘user_id’) > 0)) {
            unset($rules[‘password’]);
        }
        return $rules;
    }
کیوان علی محمدی

سلام بله میشه به راحتی چک کرد که فیلد password مقداری داره یا نه اگر وجود نداشت اصلا اعتبار سنجی براش صورت نگیره یا مثلا حداکثر و حداقل براش مشخص بشه.

ahmad mahmoudi

میشه لطفا کد این مورد رو بفرستید. من هندل نمیتونم بکنم هر کاری کردم ارروور داد

ممنون میشم کد این رو بفرستید با تشکر

unset($rules[‘password’]);
این کد رو نمیشه تو بالا هندل کرد
reqired|min:6|max:12
Reza Jashnsaz replyپاسخ

سلام من دقیقا طبق کد شما پیش رفتم ولی پسورد unset نمیشه همش null برمیگردونه ! درنتیجه تو دیتابیس هم نمیره میگه مقدار null گرفته

کیوان علی محمدی

قطعا یکجای کار اشتباه رفتید.

Reza Jashnsaz replyپاسخ

سلام بله دوباره با دقت چک کردم یه جا رو اشتباه نوشته بودم .. فقط یه سوال دیگه .. ما فیلد role رو guarded گذاشتیم .. حالا اگه بعد از نصب سایت روی هاست واقعی مدیر سایت بخواد یه کاربر عادی(با role=1 ) رو اپراتور (با role=2 ) کنه چجوری باید اینکارو انجام بده ؟

کیوان علی محمدی

مشکلی نیست می تونیم به راحتی با استفاده از متد update خود آبجکت مدل مقدار role رو تغییر بدیم.

ahmad mahmoudi replyپاسخ

پیام مجدد
جناب آقای محمدی میشه لطفا کد این مورد رو بفرستید. من هندل نمیتونم بکنم هر کاری کردم ارروور داد

ممنون میشم کد این رو بفرستید با تشکر

unset($rules[‘password’]);
این کد رو نمیشه تو بالا هندل کرد
reqired|min:6|max:12
کیوان علی محمدی

متاسفانه این کد الان در دسترس بنده نیست. باید طبق همون ویدیو اقدام کنید.

Masoud Azimi replyپاسخ

با سلام
بنده این تکه کد رو اصلا متوجه نشدم ؟ !
دقیقا متد route چه کاری انجام میده؟

request()-> route(‘user_id’)
کیوان علی محمدی

این چک میکنه در آدرس جاری اون آیدی کاربر قرار گرفته یا نه که بر اساس اون ویرایش رو انجام میده.

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.