更改主键和时间戳

默认情况下,Eloquent 模型希望将主键命名为'id'。如果不是这种情况,你可以通过指定 $primaryKey 属性来更改主键的名称。

class Citizen extends Model
{
    protected $primaryKey = 'socialSecurityNo';

    // ...
}

现在,任何使用你的主键(例如 findfindOrFail)的 Eloquent 方法都将使用此新名称。

此外,Eloquent 希望主键是一个自动递增的整数。如果你的主键不是自动递增的整数(例如 GUID),则需要通过将 $incrementing 属性更新为 false 来告诉 Eloquent:

class Citizen extends Model
{
    protected $primaryKey = 'socialSecurityNo';

    public $incrementing = false;

    // ...
}

默认情况下,Eloquent 希望 created_atupdated_at 列存在于你的表中。如果你不希望 Eloquent 自动管理这些列,请将模型上的 $timestamps 属性设置为 false:

class Citizen extends Model
{
    public $timestamps = false;

    // ...
}

如果需要自定义用于存储时间戳的列的名称,可以在模型中设置 CREATED_ATUPDATED_AT 常量:

class Citizen extends Model
{
    const CREATED_AT = 'date_of_creation';
    const UPDATED_AT = 'date_of_last_update';

    // ...
}