راکت
حل شده

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

8 پاسخ

توضیح تصویر رو وارد کنید

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

ثبت پرسش جدید

پاسخ‌ها

8
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

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

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

امین محمدزاده
امین محمدزاده
@amin.webdesign

تخصص: برنامه نویسی وب - Laravel

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

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

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

شاید پاسخ شما همین‌جا باشد

امیرحسین فلاحتی
امیرحسین فلاحتی
@amirhoseinf8034

تخصص: برنامه نویسی

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

امیرحسین فلاحتی
امیرحسین فلاحتی
@amirhoseinf8034

تخصص: برنامه نویسی

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

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

امیرحسین فلاحتی
امیرحسین فلاحتی
@amirhoseinf8034

تخصص: برنامه نویسی

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

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