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.
Free Live Chat Integration Using TAWK.IO
Facebook Login With PHP Laravel Socialite
Laravel Custom Maintenance Page
Stripe Payment Integration With Laravel
Run Raw Queries Securely In Laravel
Setup AMP (Accelerated Mobile Pages) In PHP Laravel
Foreign Key Migrations Simplified In Laravel 7.x
Install Letsencrypt SSL Certificate for RabbitMQ Server and RabbitMQ Management Tool
Laravel 7.x Multiple Database Connections, Migrations, Relationships & Querying
Multiple GIT Key Pairs Or Account In The Same Computer
PHP extension ext-intl * is missing
Send SMS With Amazon SNS (Simple Notification Service) Using PHP