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

تحديث حقل foreign_key في Laravel

Mohammad Yousef3

السؤال

كيف يمكنني التحديث على حقل foreign key موجود مسبقًا في ملف تهجير البيانات ؟

Schema::create('table_one', function(Blueprint $table) 
{ 
    $table->increments('id'); 
    $table->string('name'); 
    $table->integer('table_two_id')->unsigned(); 
    $table->foreign('table_two_id')->references('id')->on('table_two'); 
    $table->timestamps(); 
});

أريد تغيير بعض القيود ليصبح هكذا:

$table->foreign('table_two_id')->references('id')->on('table_two')->onDelete('cascade');

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

بدايةً قم بإنشاء ملف تهجير بيانات لتعديل الجدول الحالي ونسميه مثلًا "update_foreign"

عن طريق الأمر التالي:

php artisan make:migration update_foreign --table table_one

حيث أنّ:

اقتباس

update_foreign: اسم ملف التهجير

--table table_one: إشارة لاسم الجدول الحالي المراد تعديله

 

وفي داخل الملف نقوم بحذف قيد foreign key ومن ثمّ إضافة القيود الجديدة على الحقل كما هو مطلوب:

public function up()
{
    Schema::table('table_one', function (Blueprint $table) {
        $table->dropForeign(['table_two_id']); // حذف القيد السابق

        $table->foreign('table_two_id') // إضافة القيد الجديد
            ->references('id')
            ->on('table_two')
            ->onDelete('cascade');
    });
}

بعد ذلك نقوم بتهجير البيانات من خلال الأمر:

php artisan migrate

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

قم بحذف foreign key ثم إضافته مرة أخرى وتشغيل 

php artisan migrate
public function up()
{
    Schema::table('table_one', function (Blueprint $table) {
        $table->dropForeign(['table_two_id']);

        $table->foreign('table_two_id')
            ->references('id')
            ->on('table_two')
            ->onDelete('cascade');
    });
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...