Eloquent 中的保留列名称
Reserved column names in Eloquent
粗略地查看 Illuminate\Database\Eloquent\Model
我可以看到以下实例属性:
protected $connection
protected $table
protected $primaryKey
protected $perPage
public $incrementing
public $timestamps
protected $attributes
protected $original
protected $relations
protected $hidden
protected $visible
protected $appends
protected $fillable
protected $guarded
protected $dates
protected $dateFormat
protected $casts
protected $touches
protected $observables
protected $with
protected $morphClass
public $exists
public $wasRecentlyCreated
问题:
- 为什么这些东西不是
static
,因为它们是 class 级别的配置东西?
- 这是否意味着我不能将这些名称用于我的 table 列?
- 是否有不能用作 table 列的正式名称列表?
- 如果我有一个遗留的 table 包含这样命名的列怎么办?
- 谁想出了这个天才的主意?
这些属性不能是静态的,因为它们被用作它们的模型配置。如果你在你的模型中重写它们 class,你定义你自己的参数,如果没有,Eloquent 认为它应该使用默认值。
是的,您的 table 中不应有与这些属性之一的名称相匹配的列名称。
看来 $changes
也是一个保留名称。
粗略地查看 Illuminate\Database\Eloquent\Model
我可以看到以下实例属性:
protected $connection
protected $table
protected $primaryKey
protected $perPage
public $incrementing
public $timestamps
protected $attributes
protected $original
protected $relations
protected $hidden
protected $visible
protected $appends
protected $fillable
protected $guarded
protected $dates
protected $dateFormat
protected $casts
protected $touches
protected $observables
protected $with
protected $morphClass
public $exists
public $wasRecentlyCreated
问题:
- 为什么这些东西不是
static
,因为它们是 class 级别的配置东西? - 这是否意味着我不能将这些名称用于我的 table 列?
- 是否有不能用作 table 列的正式名称列表?
- 如果我有一个遗留的 table 包含这样命名的列怎么办?
- 谁想出了这个天才的主意?
这些属性不能是静态的,因为它们被用作它们的模型配置。如果你在你的模型中重写它们 class,你定义你自己的参数,如果没有,Eloquent 认为它应该使用默认值。 是的,您的 table 中不应有与这些属性之一的名称相匹配的列名称。
看来 $changes
也是一个保留名称。