
Good content takes time and effort to come up with.
Please consider supporting us by just disabling your AD BLOCKER and reloading this page again.
In this article, we will see how to create foreign key columns in Laravel 7.x migrations very easily.
In earlier versions of Laravel creating foreign key constraints were easy but too much of syntax.
public function up()
{
Schema::create('customers', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('phone');
$table->string('email')->nullable();
/** Added By Foreign Keys */
$table->unsignedBigInteger('added_by');
$table->foreign('added_by')->references('id')->on('users');
/** Update By Foreign Keys */
$table->unsignedBigInteger('updated_by')->nullable();
$table->foreign('updated_by')->references('id')->on('users');
$table->timestamps();
$table->softDeletes();
});
}
Basically you have to setup the column and then declare the constraints.
/** Added By Foreign Keys */
$table->unsignedBigInteger('added_by');
$table->foreign('added_by')->references('id')->on('users');
/** Update By Foreign Keys */
$table->unsignedBigInteger('updated_by')->nullable();
$table->foreign('updated_by')->references('id')->on('users');
In Laravel 7.x the foreign key constraints adding is like breeze.
public function up()
{
Schema::create('customers', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('phone');
$table->string('email')->nullable();
/** Added By Foreign Key */
$table->foreignId('added_by')->constrained('users');
/** Updated By Foreign Key */
$table->foreignId('updated_by')->nullable()->constrained('users');
$table->timestamps();
$table->softDeletes();
});
}
It's a very simple single liner now
/** Added By Foreign Key */
$table->foreignId('added_by')->constrained('users');
/** Updated By Foreign Key */
$table->foreignId('updated_by')->nullable()->constrained('users');
If you no longer need any foreign keys then you can easily delete them using the following migrations
public function up()
{
Schema::table('customers', function (Blueprint $table) {
$table->foreignId('added_by')->constrained('users');
$table->foreignId('updated_by')->constrained('users');
});
}
public function down()
{
Schema::table('customers', function (Blueprint $table) {
$table->dropForeign(['added_by']);
$table->dropForeign(['updated_by']);
$table->dropColumn(['added_by', 'updated_by']);
});
}
First you need to delete the Foreign keys constraints, make sure to add separately.
$table->dropForeign(['added_by']);
$table->dropForeign(['updated_by']);
Then drop the columns
$table->dropColumn(['added_by', 'updated_by']);
Hope this article helped you. Please share it with your friends.
Sass or SCSS @mixin vs @extends vs Placeholder (%)
Google, Twitter, GitHub, Facebook & Many Other Social Generic Logins With PHP Laravel Socialite
Generate SSH Key with ssh-keygen In Linux / Unix
Manipulate HTML Using DOMDocument In PHP
What Is Method Chaining In PHP?
Accessors And Mutators In PHP Laravel
Integrate Google Translate Into Your Website
Install RabbitMQ with Docker & Running with NodeJS
Website Speed and Performance Optimizations
PHP extension ext-intl * is missing
Send SMS With Amazon SNS (Simple Notification Service) Using PHP