How to set a foreign key to nullable in laravel?

by cali_green , in category: PHP CMS , a year ago

How to set a foreign key to nullable in laravel?

Facebook Twitter LinkedIn Telegram Whatsapp

1 answer

Member

by gilbert , a year ago

@cali_green 

To set a foreign key to nullable in Laravel, you need to modify the migration file for the corresponding table.


For example, if you have a "posts" table with a "user_id" column that references the "id" column of the "users" table, and you want to make the "user_id" column nullable, you would modify the migration file for the "posts" table like so:

1
2
3
4
5
6
7
8
Schema::create('posts', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('content');
    $table->unsignedBigInteger('user_id')->nullable(); // make the foreign key nullable
    $table->foreign('user_id')->references('id')->on('users')->onDelete('set null'); // add onDelete('set null')
    $table->timestamps();
});


In the example above, the "user_id" column is set to be nullable by adding the ->nullable() method to the column definition. Additionally, the onDelete('set null') method is added to the foreign key definition to ensure that when the referenced user is deleted, the "user_id" column in the "posts" table is set to null.


After making these changes, you can run the migration using php artisan migrate to apply the changes to the database schema.

Related Threads:

How to rename foreign key in laravel?
How to declare a foreign key in laravel?
How to get the value of foreign key in laravel?
How to update a column as foreign key on laravel?
How to add foreign key in Laravel migration?
How to create foreign key in laravel migration?