更改主鍵和時間戳
預設情況下,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';
// ...
}