Laravel模式构建器将tablename转换为小写

use*_*708 5 php naming-conventions laravel-5

我只是想知道为什么laravel中的模式构建器会自动将所有camel case转换为表命名中的小写

例如

Schema::create('myTable', function(Blueprint $table)
    {
        ....
    });
Run Code Online (Sandbox Code Playgroud)

它创建tablename:mytable

这是为什么?那是laravel的惯例吗?我没有在laravel docs Schema Builder页面中看到它.

谢谢

The*_*pha 3

在表名和字段名中使用蛇形大小写是一种常见的做法,它不仅与 Laravel 有关,而且大多数人都遵循此约定。在Laravel旧的(4x)文档中,提到了:

请注意,我们没有告诉 Eloquent 哪个表用于我们的用户模型。除非显式指定另一个名称,否则类的小写复数名称将用作表名称。因此,在这种情况下,Eloquent 将假设 User 模型将记录存储在 users 表中。您可以通过在模型上定义表属性来指定自定义表:

class User extends Eloquent {

    protected $table = 'my_users';

}
Run Code Online (Sandbox Code Playgroud)

所以,是的,在很多地方Laravel使用strtolower函数,这可能更好地遵循通用约定,它被 ( my_table) 称为snake case.