برای onDelete چندتا مقدار میشه قرار داد:
cascade: همون طوری که دوستان اشاره کردند به این معنی هست که اگر پدرشون حذف بشه تمام بچه هاش هم حذف میشه. مثلا با حذف یک نویسنده تمام پست های وبلاگ و کامنت ها و ... مربوط به ایشون هم حذف میشه.
set null: بعد از حذف پدرشون در فیلد مربوط به FK مقدار NULL قرار میگیره. یعنی مثلا فیلد author_id در جدول posts برابر null میشه.
restrict: اگر هم این مقدار رو قرار بدید اجازه حذف پدر رو در صورتی که فرزند داشته باشه نمیده. یعنی مادامی که یک نویسنده دارای پست یا کامنت هست نمیتونید رکورد نویسنده رو حذف کنید و ارور میده.
@mahdiam200
سلام.
در migration باید یک کلید خارجی تعریف کنید و برای اون onDelete رو بذارید روی cascade.
@mahdiam200
سلام،
به طور مثال به این شکل:
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
که onDelete('cascade')
کاری که شما مد نظر دارید رو انجام میده.
سلام به شما دوست عزیز.
ببینید شما به عنوان مثال یه مایگریشن واسه کاربر دارین و کاربر میخواد بیاد یه سری مقاله ثبت کنه و میخواین وقتی مقاله حذف شد همه چیز مربوط به مقاله هم حذف بشه.
باید به صورت زیر در جدول مقاله یه کاید خارجی تعریف کنید.
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
برای onDelete چندتا مقدار میشه قرار داد:
cascade: همون طوری که دوستان اشاره کردند به این معنی هست که اگر پدرشون حذف بشه تمام بچه هاش هم حذف میشه. مثلا با حذف یک نویسنده تمام پست های وبلاگ و کامنت ها و ... مربوط به ایشون هم حذف میشه.
set null: بعد از حذف پدرشون در فیلد مربوط به FK مقدار NULL قرار میگیره. یعنی مثلا فیلد author_id در جدول posts برابر null میشه.
restrict: اگر هم این مقدار رو قرار بدید اجازه حذف پدر رو در صورتی که فرزند داشته باشه نمیده. یعنی مادامی که یک نویسنده دارای پست یا کامنت هست نمیتونید رکورد نویسنده رو حذف کنید و ارور میده.
در مورد روابط ساده مشکل حل شد اما اگه رابطه پلی مورفیک باشه؟اونموقع دیگه نمیتونیم فیلد able_id رو انتخاب کنیم چون به عنوان مثال امکان داره عکس مربوط به مقاله ۶ و محصول ۶ وجود داشته باشه و با این کار اگر هر کدومش حذف شد عکس اون یکی هم حذف میشه راهکارتون چیه؟
لطفا در مورد حذف در روابط مورفیک هم راهنمایی کنید.
در روابط مورفیک یک به یک چطوری باید حذف کنیم . با توجه به اینکه فیلد able دار رو اتوماتیک تعریف می کنیم. کلید خارجی هم که نیست براش ondelete تعریف کنیم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟