Laravel和变量命名约定(蛇格+骆驼格)
Laravel and variable naming conventions (snake case + camel case)
我们遵循Laravel标准,将模型属性命名为snake_case_variables。尽管Laravel只是我们系统中与Javascript前端和许多其他应用程序进行对话的API层。
API的所有消费者都非常喜欢采用骆驼大小写的变量(例如javascript/Rect)。
我们发现很难将核心模型属性(如created_at、updated_at、confirmation_password、模型关系等)更改为snake case。
我们已经玩过wth并实现了转换层来改变"外壳"的进出,尽管这只是增加了维护和开发人员需要记住的另一件事。。。
我们如何轻松地将所有模型属性、关系和一般的Laravel绑定转换为骆驼格
我不推荐它,因为它更改了laravel的核心,因此它修改了供应商文件,在不丢失更改的情况下更新起来并不容易,但我认为最简单的方法是用修改后的版本替换vendor''laravel''framework''src''illumination''Support''Str.php。laravel从该文件中的方法对studly、camel-case、snake等执行所有字符串修改。遍历函数会改变函数的执行方式,但我认为这没有意义,因为方法名称与它们正在执行的内容不匹配。
最好但最困难的方法是进入正在使用Str类中方法的每个文件,并根据您的需要进行修改,这将是有意义的,但需要做大量工作来更改正在使用的方法。
从这些文件中更改所需的值。
请参阅vendor''laravel''framework''src''Database''Eloquent''Model.php您还可以看到这些值是在此处设置的,用于从模型中进行检查。
public static $manyMethods = ['belongsToMany', 'morphToMany', 'morphedByMany'];
const CREATED_AT = 'created_at';
const UPDATED_AT = 'updated_at';
请参阅vendor''laravel''framework''src''Database''Schema''Blueprint.php您还可以看到这些值是在此处设置的,用于从创建迁移和删除迁移进行检查。例如创建时间戳的那个。
public function timestamps()
{
$this->timestamp('created_at')->nullable();
$this->timestamp('updated_at')->nullable();
}
您绝对应该看看Mappable。我们遇到了同样的问题,这解决了它。您可以将snake_case映射到CamelCase名称,甚至可以在QueryBuilder中使用它们。
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Laravel和变量命名约定(蛇格+骆驼格)
- 蛇脚本未将值传递给变量
- 如何从包含
元素的 javascript 变量中获取单元格数据 - 按td标头(使用变量)选择单元格,并使用javascript选择类
- 如何使单元格中的表成为变量
- 如何在可编辑的GridX中将局部变量作为属性提供给单元格编辑器
- 如何使用行号变量来创建单元格引用字符串