【问题标题】: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

【问题讨论】:

    标签: php orm laravel eloquent


    【解决方案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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 2012-12-14
      • 1970-01-01
      相关资源
      最近更新 更多