约定表名(带下划线)

Posted

技术标签:

【中文标题】约定表名(带下划线)【英文标题】:Convention table names (with underscore) 【发布时间】:2013-01-05 04:09:19 【问题描述】:

这个表在 Laravel 3/4 中正确的表名是什么?

结构 image_projects (id, project_id, image, ext, size, created_at, updated_at, active)

image_projects
imageprojects
imageProjects

还有,我该如何创建模型?

app/models/image_projects.php
app/models/imageprojects.php
app/models/imageProjects.php
app/models/image/projects.php
app/models/projects/image.php

【问题讨论】:

【参考方案1】:

你为你的表命名没有区别,只要你以单数形式命名文件和类,类名以大写字母开头。

您可以使用以下任何选项:

表名: image_projects

文件名:ImageProject.php

类名: ImageProject


表名: imageprojects

文件名: Imageproject.php

类名: Imageproject


表名: imageProjects

文件名:ImageProject.php

类名: ImageProject

在这种情况下,您必须自己设置 $table 属性。


记住:如果你没有以你命名表的单数形式命名你的类,你必须在你的模型中手动设置它:

class ImageProjects extends Eloquent

    public $table = 'image_projects';

【讨论】:

另外,请记住,如果您在类名中使用下划线,则需要将模型嵌套到文件夹中(Image_project 将作为 /Image/project.php 存在) @mavrck - 我不认为你。这是一种选择。 @joe 如果您使用的是版本 3 或 4,我相信这是必需的,除非您想破解 start.php 文件。由于 PSR-0 规则,下划线被转换。 (见这里:github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md) @JosephSilber 所以,“最佳实践”是使用下划线和“嵌套模型”到文件夹中? @PatrickMaciel - 是的。假设文件夹是可选的,似乎我错了。【参考方案2】:

当前的 Laravel 4.2 版表名约定可以这样工作:

表名: image_projects

文件名: ImageProject.php

类名: ImageProject

驼峰式类名迫使我例外地使用表名下划线。

【讨论】:

以上是关于约定表名(带下划线)的主要内容,如果未能解决你的问题,请参考以下文章

Android id 命名约定:带下划线的小写与驼峰式

mysql java 根据表名转为javaBean,下划线转驼峰,带注释,部分常用类型匹配。

thinkphp3.2.3 无法调用带下划线的模型

MySQL 有命名约定吗?

标签、函数的命名约定

RNP项目遇到的坑