为什么即使模型名称在Laravel上是复数?

问题描述 投票:0回答:1

我是Laravel的新人。

当我正在研究Laravel时,我注意到我制作的所有Model都以复数形式命名,但它运作正常。

我想知道它是怎么发生的,因为我在注意到之后阅读了文档并且它说“模型应该以单数命名”。

谁能解释它是如何工作的?

附:在那些模型中没有提到$table

我很抱歉我想说“单数”不是“音节”。

php database laravel model relation
1个回答
1
投票

laravel的一般约定是使用模型的单数名称和表格的复数名称。请注意,您可以在模型中使用protected $table = 'yourTableName';更改关联的表名称。我个人认为手动设置是一个很好的做法。

我无法解释它是如何得到相关的表名,因为它将是一篇文章(我也不确定我能否正确解释)但我可以向你发送正确的方向。

由于laravel是开源的,你实际上可以在引擎盖下达到峰值,看看它是如何工作的。你可以去framework/src/Illuminate/Database/Eloquent/Model.php或者看看online看看副职能。您将看到getTable函数,它将返回表名。但它使用另一种功能。所以你需要看看该函数中的内容。

经过几次挖掘,您将看到laravel实际上使用不同的库来帮助获取项目名称。它使用inflector。您可以浏览一下它,以了解它是如何获得复数名称。在那里,您可以找到底层代码和规则等,以了解它是如何工作的。

© www.soinside.com 2019 - 2024. All rights reserved.