为什么即使模型名称在 Laravel 上是复数,它仍然有效?
why does it works even though Model name is plural on Laravel?
我是 Laravel 的新人。
在我学习的过程中Laravel我注意到我制作的所有 Model
都是用复数命名的,但它工作正常。
我想知道这是怎么发生的,因为在我注意到这一点后我阅读了文档,上面写着 "Model should be named by the singular."。
谁能解释一下它是如何工作的??
P.S。那些模型中没有提到$table
。
很抱歉我想说 "singular" 而不是 "syllable"。
laravel 的一般惯例是对模型使用单数名称,对 table 使用复数名称。请注意,您可以在模型中使用 protected $table = 'yourTableName';
来更改关联的 table 名称。我个人认为手动设置它是一个很好的做法。
我无法解释它是如何获得关联的 table 名称的,因为这将是一篇论文(我也不确定我是否能够正确解释)但我可以将您带到正确的方向.
由于 laravel 是开源的,您实际上可以深入了解它的工作原理。您可以去 framework/src/Illuminate/Database/Eloquent/Model.php
或查看它 online 以查看关联功能。您将看到 getTable
函数,它将 return table 名称。但它使用了另一个功能。所以你需要看看那个函数里有什么。
经过一些挖掘,您会发现 laravel 实际上使用不同的库来帮助获取项目名称。它使用 inflector。您可以稍微浏览一下以了解它是如何获得复数名称的。在那里你可以找到底层代码和规则等来理解它是如何工作的。
我是 Laravel 的新人。
在我学习的过程中Laravel我注意到我制作的所有 Model
都是用复数命名的,但它工作正常。
我想知道这是怎么发生的,因为在我注意到这一点后我阅读了文档,上面写着 "Model should be named by the singular."。
谁能解释一下它是如何工作的??
P.S。那些模型中没有提到$table
。
很抱歉我想说 "singular" 而不是 "syllable"。
laravel 的一般惯例是对模型使用单数名称,对 table 使用复数名称。请注意,您可以在模型中使用 protected $table = 'yourTableName';
来更改关联的 table 名称。我个人认为手动设置它是一个很好的做法。
我无法解释它是如何获得关联的 table 名称的,因为这将是一篇论文(我也不确定我是否能够正确解释)但我可以将您带到正确的方向.
由于 laravel 是开源的,您实际上可以深入了解它的工作原理。您可以去 framework/src/Illuminate/Database/Eloquent/Model.php
或查看它 online 以查看关联功能。您将看到 getTable
函数,它将 return table 名称。但它使用了另一个功能。所以你需要看看那个函数里有什么。
经过一些挖掘,您会发现 laravel 实际上使用不同的库来帮助获取项目名称。它使用 inflector。您可以稍微浏览一下以了解它是如何获得复数名称的。在那里你可以找到底层代码和规则等来理解它是如何工作的。