راکت

دسترسی دادن به کاربران

سلام خسته نباشید من میخوام وضعیت دسترسی کاربران رو مدیریت کنم
با قسمت اضافه کردن دسترسی ها مشکلی ندارم
اما وقتی میخوام خذف کنم دسترسی رو این ارور رو بهم میده اما
وقتی صفحه مرورگر رو refresh میکنم اون دسترسی رو از کاربر حذف کرده در حقیقت کد کار میکنه اما نمیدونم چرا این ارور رو میده


ثبت پرسش جدید
محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
0

علت ارورتون هم اینه که مثلا یک کاربری براش نقش مدیر و نویسنده تعریف شده. حالا شما میاید و نقش مدیر رو ازش حذف می‌کنید و روی ذخیره کلیک می‌کنید.

اگر به اشتباه از attach استفاده کرده باشید فارغ از همه نقش های قبلیش میاد و سعی می‌کنه یک نقش باقیمونده (یعنی نویسنده) رو اضافه کنه. غافل از اینکه قبلا چنین نقشی برای این کاربر به ثبت رسیده. به همین خاطر ارورDuplicate entry میده و معنیش دقیقا همینه که یک کاربر نباید دوبار یک نقش یکسان براش به ثبت برسه.


امین محمدزاده
امین محمدزاده
تخصص :برنامه نویسی وب - Laravel
@amin.webdesign4 سال پیشمطرح شد
1

این مشکل به خاطر اینه که شما توی جدولی که دسترسی رو ذخیره میکنید یه ستون دارید که خصوصیت PRIMARY داره و مقادیری هم که برای حالت PRIMARY میخواید ذخیره کنید نباید تکراری باشه. احتمالا از قبل یه سری مقادیر تکراری توی جدول permission_user دارید که داره به اونها ایراد تکراری بودن میگیره. شما یه بار جدول مذکور رو Empty کنید و تست کنید.


علیرضا کفایتی
علیرضا کفایتی
تخصص :برنامه نویس laravel, vue.js
@alirezakefayati4 سال پیشمطرح شد
1

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


امیرحسین فلاحتی
امیرحسین فلاحتی
تخصص :برنامه نویسی
@amirhoseinf80344 سال پیشمطرح شد
0

جدول رو چندین بار refresh کردم
اما متاسفانه نشد
حالا من کد جدول ها رو براتون میفرستم


محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
0

حدس می‌زنم موقع ذخیره تغییرات نقش‌ها یا مجوزها بجای استفاده از sync دارید از attach یا create استفاده می‌کنید!

اگر نوع روابطتون رو از نوع many-to-many تعیین کردید (که منطقا همینطور باید باشه) موقع ذخیره تغییرات نقش ها یا مجوزها، از متد sync بجای attach/create استفاده کنید تا با نقش ها و مجوزهای قبلی تداخل پیدا نکنه...


امیرحسین فلاحتی
امیرحسین فلاحتی
تخصص :برنامه نویسی
@amirhoseinf80344 سال پیشمطرح شد
0

اره از attach استفاده کردم
به جای sync
به جای detach معادلش از چه متدی استفاده کنم ؟؟؟؟
@mhyeganeh


محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
0

کلا متد sync حلال همه موضوعاته و همه فن حریفه!

بصورت اتومات اون هایی حذف شدند رو detach می‌کنه. اون هایی که جدید هستند رو attach می‌کنه. به اون هایی که تغییری نداشتند هم دست نمی‌زنه. دیگه چی می‌خواید؟ 😉

https://laravel.com/docs/8.x/eloquent-relationships#syncing-associations


محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
0

علت ارورتون هم اینه که مثلا یک کاربری براش نقش مدیر و نویسنده تعریف شده. حالا شما میاید و نقش مدیر رو ازش حذف می‌کنید و روی ذخیره کلیک می‌کنید.

اگر به اشتباه از attach استفاده کرده باشید فارغ از همه نقش های قبلیش میاد و سعی می‌کنه یک نقش باقیمونده (یعنی نویسنده) رو اضافه کنه. غافل از اینکه قبلا چنین نقشی برای این کاربر به ثبت رسیده. به همین خاطر ارورDuplicate entry میده و معنیش دقیقا همینه که یک کاربر نباید دوبار یک نقش یکسان براش به ثبت برسه.


امیرحسین فلاحتی
امیرحسین فلاحتی
تخصص :برنامه نویسی
@amirhoseinf80344 سال پیشمطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام