اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

علاقة One Two Many Polymorphic تقتضي أن يكون العمود الممثل للمفتاح الاجنبي حاملا لقيمته لا أكثر، ولا يتطلبك تصريحه كمفتاح أجنبي يشير الى مفتاح اولي في جدول آخر. بمعنى أنه سيكون مجرد Ineteger لا أكثر ولا يفترض أن يحمل أن علاقة تعبر عنه كونه مفتاحا أجنبيا، بل سيتم الاستعلام عنه لاحقا باعتبار هاته القيمة وفقط. هيكلة الجداول لديك يجب أن تبدوا على النحو التالي: 

Schema::create('comments', function (Blueprint $table) {
    $table->id();
    $table->text("comments");
    $table->integer('commentable_id');
    $table->string("commentable_type");
    $table->timestamps();
});

ولا تنسى بطبيعة الحال تصريح التوابع اللازمة في ملفات النماذج المعنية Comment و Video و Post وسيتم الأمر بشكل تلقائي. 

  • 0
نشر
بتاريخ 13 دقائق مضت قال Adnane Kadri:

علاقة One Two Many Polymorphic تقتضي أن يكون العمود الممثل للمفتاح الاجنبي حاملا لقيمته لا أكثر، ولا يتطلبك تصريحه كمفتاح أجنبي يشير الى مفتاح اولي في جدول آخر. بمعنى أنه سيكون مجرد Ineteger لا أكثر ولا يفترض أن يحمل أن علاقة تعبر عنه كونه مفتاحا أجنبيا، بل سيتم الاستعلام عنه لاحقا باعتبار هاته القيمة وفقط. هيكلة الجداول لديك يجب أن تبدوا على النحو التالي: 

Schema::create('comments', function (Blueprint $table) {
    $table->id();
    $table->text("comments");
    $table->integer('commentable_id');
    $table->string("commentable_type");
    $table->timestamps();
});

ولا تنسى بطبيعة الحال تصريح التوابع اللازمة في ملفات النماذج المعنية Comment و Video و Post وسيتم الأمر بشكل تلقائي. 

ولكن في حال تم حذف post او video لن يتم حذف التعليق المتعلق بهم في هذه الحالة .. صحيح ؟

  • 0
نشر
بتاريخ الآن قال بندر البطاطي:

ولكن في حال تم حذف post او video لن يتم حذف التعليق المتعلق بهم في هذه الحالة .. صحيح ؟

بشكل افتراضي لن يتم ذلك على مستوى قاعدة البيانات، ولكن يمكنك تجاوز التابع delete الخاص بـ post أو video فتقوم بحذف جميع التعليقات الفرعية قبل حذف المنشور أو الفيديو. 

public function delete()
{
   if(parent::delete())){
       $this->comments()->delete();
   }   
}

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...