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