Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉雷维尔:我应该坚持用驼峰案例来描述雄辩的关系方法吗?_Laravel_Eloquent - Fatal编程技术网

Laravel 拉雷维尔:我应该坚持用驼峰案例来描述雄辩的关系方法吗?

Laravel 拉雷维尔:我应该坚持用驼峰案例来描述雄辩的关系方法吗?,laravel,eloquent,Laravel,Eloquent,Laravel鼓励我们使用snake_大小写,例如first_name,作为模型属性名称。特别是,当使用snake case从类外部访问属性时,它将自动查找名为getFirstNameAttribute的访问器 然而,当涉及到模型关系时,使用驼峰案例似乎更为自然。例如,如果体育场有多个接入点,则stadium类可能有一个accessPoints()方法。我可以将此方法作为属性调用($stadium->accessPoints)来检索访问点列表,也可以将其作为方法调用($stadium->acce

Laravel鼓励我们使用snake_大小写,例如first_name,作为模型属性名称。特别是,当使用snake case从类外部访问属性时,它将自动查找名为getFirstNameAttribute的访问器

然而,当涉及到模型关系时,使用驼峰案例似乎更为自然。例如,如果体育场有多个接入点,则
stadium
类可能有一个
accessPoints()
方法。我可以将此方法作为属性调用(
$stadium->accessPoints
)来检索访问点列表,也可以将其作为方法调用(
$stadium->accessPoints()
)来获取基础查询生成器的实例

这与我通常采用的命名约定不同。我通常会使用相同的案例(snake_案例或camelCase)命名属性,而不管属性是如何实现的


我现在正在着手一个大型的拉威尔项目。我应该坚持使用这两种不同的语法,还是会后悔呢?

好吧,这是一种惯例,所以你应该使用你比较习惯的方法

我个人只在列属性上使用snake_case,在其他所有属性(类名、关系ecc)上使用camelCase

注意,类名称和方法的camelCase基本上是必需的,因为所有的laravel和外部模块类和方法都使用camelCase。如果您使用snake_案例,那么您在snake_案例中实现的一些方法和camelCase中的框架方法将变得一团糟


对于人际关系,你基本上只会使用你自己定义的人际关系,所以我相信你真的可以选择你喜欢的一种。

没有真正的惯例,就像刺客信条所说的那样

“没有什么是真实的,一切都是允许的”

Laravel遵循PSR-2编码标准。资料来源:

这让我们转向

(上面写着:代码必须遵循PSR-1中列出的所有规则。

上面写着:

无论使用何种命名约定,都应在合理范围内始终如一地应用。该范围可以是供应商级别、包级别、类级别或方法级别

从这个声明来看,这与环境级约定(如数据库设计约定和代码约定)之间的分离有关。大多数数据库设计约定都鼓励使用蛇壳列名,而大多数代码约定都使用驼峰壳方法名、类名等


在定义模型时,为了声明模型属性与数据库列相关,编码约定从camelCase更改为snake_

对关系方法名称使用camelCase,对属性使用snake\u case。