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

دسته بندی: آموزش
زمان مطالعه: 1 دقیقه
۲۴ تیر ۱۳۹۶

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

:: توجه

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

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

نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

خدابنده

برای حالت ویرایش که پسورد هم ست شده و بخوایم min , max هم چک بشه اینکار اوکیه؟

if (request()-> route(‘user_id’) && intval(request()->route(‘user_id’) > 0) && !resuest->has(‘password’)) {

اگه از مد ویرایش اومد و پسورد خالی بود بیا unset کن.

خدابنده

استاد ممنونم از آموزش روان و خوبتون
استاد اگر کاربر آیدی رو در URL تغییر بده و فرم رو سابمیت کنه ویرایش برای یک یوزر دیگه انجام میشه چون ما user_id رو از آدرس گرفتیم. چطور از امنیتش مطمین شیم؟

Masoud Azimi

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

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

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

ahmad mahmoudi

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

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

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

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

Reza Jashnsaz

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

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

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

Reza Jashnsaz

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

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

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

ahmad mahmoudi

سلام وقت بخیر استاد علی محمدی
شما در ویدیو فرمودید با یک 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;
    }
ahmad mahmoudi

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

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

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

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

hadi moazen

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

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

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

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل