约定表名(带下划线)
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
驼峰式类名迫使我例外地使用表名下划线。
【讨论】:
以上是关于约定表名(带下划线)的主要内容,如果未能解决你的问题,请参考以下文章