gpt4 book ai didi

javascript - Laravel 和变量命名约定(蛇形 + 驼形)

转载 作者:可可西里 更新时间:2023-11-01 00:41:15 35 4
gpt4 key购买 nike

我们遵循将模型属性命名为 snake_case_variables 的 Laravel 标准。尽管 Laravel 只是我们系统中与 Javascript 前端和许多其他应用程序对话的 API 层。

我们 API 的所有使用者都非常喜欢驼峰式变量(例如 javascript/React)。

我们发现很难更改核心模型属性,例如created_at, updated_at, confirmation_password, model relations etc into snake case.

我们玩弄并实现了转换层来改变进出的“外壳”,尽管这只是增加了维护和开发人员要记住的另一件事......

我们如何轻松地将所有模型属性、关系和一般的 Laravel 绑定(bind)转换为驼峰式大小写?

最佳答案

我不推荐,因为它改变了 laravel 的核心,因此它修改了 vendor 文件,并且在不丢失更改的情况下不容易更新,但我认为最简单的方法是替换vendor\laravel\framework\src\illuminate\Support\Str.php 修改后的版本。 laravel 在此文件中的方法中对 studly、camel case、snake case 等进行所有字符串修改。遍历函数会改变函数执行的方式,但我认为这没有意义,因为方法名称与它们正在执行的内容不匹配。

最好但困难的方法是进入每个正在使用 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();
}

关于javascript - Laravel 和变量命名约定(蛇形 + 驼形),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36493202/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com