امیرحسین فلاحتی
3 سال پیش توسط امیرحسین فلاحتی مطرح شد
8 پاسخ

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

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

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


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

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

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


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

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


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

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


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

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


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

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

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


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

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


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

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

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

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


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

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

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


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

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

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