26

我记得听说你应该以一种特殊的方式命名你的控制器、模型和视图。无论是单数还是复数。我不记得要命名哪些,但我在文档中找不到任何关于它的信息。

我猜是这样的:

  • 控制器是复数
  • 视图是复数
  • 模型是单一的

我在正确的轨道上吗?

我知道这只是一个约定,您不必遵循它们,但我仍然想知道正确的方法是什么。

4

4 回答 4

3

在 ASP.NET MVC 中,我使用您上面提到的约定,期望视图,它们是混合的。如果我有一个显示多个“事物”的视图,例如员工列表,则它是复数。如果我有一个显示单个员工的视图,它是单数的。

于 2012-11-24T09:37:07.307 回答
3

约定是:

  • 模型类名称是单数(照片类扩展模型)
  • 表名是复数(从照片中选择 id )
  • 控制器资源名称是单数(Photo Controller.php)

我找不到文档中定义的控制器名称的约定,但所有记录的示例都将控制器资源名称放在单数中。

来自 Laravel 5.5 文档

按照约定,“snake case”,类的复数名称将用作表名,除非明确指定另一个名称... Eloquent 将假定 Flight 模型将记录存储在航班表中

于 2017-11-26T17:53:22.910 回答
2

你实际上给它们起什么名字并不重要。只要您始终如一地这样做,这只是一个品味问题。有时您甚至别无选择,只能遵循当前项目已经确定的代码样式。

一种好的做法是,如果可以的话,就是遵循PHP Framework Interop Group标准。在他们的页面上阅读更多关于他们的信息以了解更多信息。

Laravel 4 将遵循所有标准(PSR-0PSR-1PSR-2),但 Laravel 3 不是。例如:对于PSR-1 “要求”的方法,它不使用驼峰式大小写。

于 2012-11-25T17:20:02.350 回答
1

这里的答案非常正确,但如果你在谈论 Laravel,你应该以单数形式命名你的 Models 类,因为 Laravel 内置了功能,例如 Eloquent 类足够聪明,它可以检测英语的复数形式。因此,如果我们的对象是单数的,它将使用该名称的复数形式来访问该对象的数据库表。

于 2012-12-20T23:57:55.507 回答