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.
Use Different PHP Versions In Ubuntu / Linux
Google, Twitter, GitHub, Facebook & Many Other Social Generic Logins With PHP Laravel Socialite
Dependency Dropdowns With Javascript And PHP
Automate Repeating Tasks In Linux Server With Cronjobs
Install Apache Web Server On Ubuntu 20.04 / Linux & Manage It
Move Uploaded Files From Local Computer Or Server To Amazon S3 Bucket In PHP
Unable to prepare route [{fallbackPlaceholder}] for serialization. Uses Closure In Laravel
Generate Fake Data In PHP With Faker
PHP Built-In Web Server & Testing Your Development Project In Mobile Without Any Software
Composer Install v/s Composer Update
Setup AMP (Accelerated Mobile Pages) In PHP Laravel