Laravel 更改主键和时间戳

示例

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

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

    // ...
}

现在,任何使用主键的口才方法(例如find或findOrFail)都将使用此新名称。

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

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

    public $incrementing = false;

    // ...
}

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

class Citizen extends Model
{
    public $timestamps = false;

    // ...
}

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

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

    // ...
}