Eloquent明确拒绝以下划线开头的字段/列
这里介绍了
https://github.com/laravel/framework/commit/1000e2dca7f42d5cd5e03cbdc85fcf957b7a5548
似乎唯一的方法是手动将每个下划线列指定为可填写或将无防护设置为真。
这有什么理由吗?我能想到的唯一原因是前缀_
表示私有变量而不是放入数据库的系统?当下划线是SQL
答案 0 :(得分:0)
我认为这是因为Eloquent使用魔法。实际上,它必须强制执行命名约定,以确保不会出现不必要的错误。
例如,看一下Eloquent\Model\Concerns\HasAttributes的代码,您将看到它使用Str::studly
来定义mutators。
如果Eloquent允许定义foo_column
和_foo_column
,则两者都具有相同的mutator函数getFooColumn
。这可能导致许多问题。例如,为foo_column
定义mutator也会影响_foo_column
。