更改主键和时间戳
默认情况下,Eloquent 模型希望将主键命名为'id'
。如果不是这种情况,你可以通过指定 $primaryKey
属性来更改主键的名称。
class Citizen extends Model
{
protected $primaryKey = 'socialSecurityNo';
// ...
}
现在,任何使用你的主键(例如 find
或 findOrFail
)的 Eloquent 方法都将使用此新名称。
此外,Eloquent 希望主键是一个自动递增的整数。如果你的主键不是自动递增的整数(例如 GUID),则需要通过将 $incrementing
属性更新为 false
来告诉 Eloquent:
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';
// ...
}