Laravel 8 主键
Eloquent 也会假设每个数据表都有一个名为 id
的主键列。你可以定义一个受保护的 $primaryKey
属性来重写约定。
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* 与表关联的主键
*
* @var string
*/
protected $primaryKey = 'flight_id';
}
此外,Eloquent 假设主键是一个自增的整数值,这意味着默认情况下主键会自动转换为 int
类型。如果您希望使用非递增或非数字的主键则需要设置公共的 $incrementing
属性设置为 false
:
<?php
class Flight extends Model
{
/**
* 主键是否主动递增
*
* @var bool
*/
public $incrementing = false;
}
如果你的主键不是一个整数,你需要将模型上受保护的 $keyType
属性设置为 string
:
<?php
class Flight extends Model
{
/**
* 自动递增主键的「类型」
*
* @var string
*/
protected $keyType = 'string';
}