LARAVEL

Laravel Table name and primary keys


In Laravel, table names and primary keys are crucial components of database design. Laravel provides conventions for defining table names and primary keys, but it also allows for customization based on your project's requirements.

 

Table Names:

By default, Laravel assumes table names based on the plural form of the model name. For example, if you have a model named User, Laravel will look for a table named users. This convention follows the ActiveRecord pattern.

If you want to customize the table name associated with a model, you can do so by specifying the table name in the model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class CustomUser extends Model
{
    protected $table = 'custom_users';
}

 

Primary Keys:

Laravel assumes that the primary key of a table is named id by default. However, you can customize the primary key name by specifying it in the model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class CustomUser extends Model
{
    protected $primaryKey = 'custom_id';
}

 

Composite Primary Keys:

If your table uses a composite primary key (i.e., a primary key composed of multiple columns), you can specify it as an array in the model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class CustomUser extends Model
{
    protected $primaryKey = ['id1', 'id2'];
}

 


LARAVEL