更改主鍵和時間戳

預設情況下,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';

    // ...
}