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