In Laravel's Eloquent model, you can define the primary key by setting the $primaryKey
property in the model class. By default, Laravel assumes that the primary key is an auto-incrementing integer, but you can customize it based on your requirements.
Here's an example of how to define the primary key for an Eloquent model in Laravel:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
/**
* The primary key associated with the table.
*
* @var string
*/
protected $primaryKey = 'your_primary_key_column';
// Rest of your model code...
}
Replace 'your_primary_key_column'
with the actual name of the column you want to use as the primary key in your database table.
If you want to use a non-incrementing or non-numeric primary key, you should also set the $incrementing
property to false
and define the $keyType
property with the appropriate data type. Here's an example:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model
{
/**
* Indicates if the primary key is auto-incrementing.
*
* @var bool
*/
public $incrementing = false;
/**
* The data type of the primary key.
*
* @var string
*/
protected $keyType = 'string';
/**
* The primary key associated with the table.
*
* @var string
*/
protected $primaryKey = 'your_primary_key_column';
// Rest of your model code...
}
In the above example, $incrementing
is set to false
to indicate that the primary key is not auto-incrementing, and $keyType
is set to 'string'
to define the data type of the primary key.