
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.
Multiple File Uploads In Laravel PHP
Laravel Last Executed Query In Plain SQL Statement For Debugging
Redirect www to a non-www Website Or Vice Versa
Firebase Cloud Messaging (FCM) Browser Web Push Notifications Using Javascript And PHP
Securely SSH Your Server & Push Files With FileZilla
Simple Way To Create Resourceful API Controller In Laravel
Install Linux, NGINX, MYSQL, PHP (LEMP Stack) on Ubuntu
Free SSL Certificate In cPanel With ZeroSSL & Certbot
Add Google ADS In AMP (Accelerated Mobile Pages) Website
Install Linux, Apache, MYSQL, PHP (LAMP Stack) on Ubuntu
Create Zip File On The Fly With Streaming Download In PHP Laravel