آفلاین
user-avatar

مقدار دهی پیش فرض کلید خارجی در صورت حذف والد

3 سال پیش
توسط Mahdi Afiyati آپدیت شد
آفلاین
user-avatar
Mahdi Afiyati ( 654 تجربه )
3 سال پیش

سلام .
من در جدول کاربران یک کلید خارجی دارم برای مثال city_id من نمی خوام وقتی شهر حذف شد کاربر حذف بشه یا در جدول کاربران ستون city_id مقدار پیش فرض NULL قرار بگیر . من کلی سرچ کردم میشه وقتی کلید خارجی را تعریف کرد

onDelete('set NULL')

قرار داد ولی اون وقت مقدار null میشه که من نمی خوام null بشه درواقع میخوام برای مثال مقدار 1 قرار بگیر .

آفلاین
user-avatar
مهدی ( 23232 تجربه )
3 سال پیش

فک کنم متد زیر هم استفاده کنی

onDELETE('SET DEFAULT')

البته اگه توسط لاراول حذف میشه میشه متد ها رو توی تابع destroy هم قرار داد

آفلاین
user-avatar
Mahdi Afiyati ( 654 تجربه )
3 سال پیش

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

[Illuminate\Database\QueryException]
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `users`
  add constraint `users_language_id_foreign` foreign key (`language_id`) references `languages` (`i
  d`) on delete set default)

  [PDOException]
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
برای ارسال پاسخ باید وارد سایت شوید