Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么即使型号名称在Laravel上是复数,它仍然有效?_Php_Database_Laravel_Model_Relation - Fatal编程技术网

Php 为什么即使型号名称在Laravel上是复数,它仍然有效?

Php 为什么即使型号名称在Laravel上是复数,它仍然有效?,php,database,laravel,model,relation,Php,Database,Laravel,Model,Relation,我是新来拉维尔的。 当我在学习拉威尔时,我注意到我制作的所有模型都是用复数命名的,但它工作正常 我想知道这是怎么发生的,因为在我注意到这一点后,我阅读了文档,它说,“模型应该以单数命名。” 有人能解释一下它是如何工作的吗 另外,这些型号中没有提到$table 很抱歉,我想说的是“单数”而不是“音节”。laravel的一般惯例是对模型使用单数名称,对表格使用复数名称。请注意,您可以使用protected$table='yourTableName'更改关联的表名在您的模型中。我个人认为手动设置是一种

我是新来拉维尔的。

当我在学习拉威尔时,我注意到我制作的所有
模型
都是用复数命名的,但它工作正常

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

有人能解释一下它是如何工作的吗

另外,这些型号中没有提到
$table


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

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

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

由于laravel是开源的,你可以在幕后达到顶峰,看看它是如何工作的。您可以转到
framework/src/illumb/Database/elount/Model.php
或查看它以查看相关函数。您将看到
getTable
函数,该函数将返回表名。但它使用了另一个功能。所以你需要看看这个函数是什么


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

参考此链接可能有助于you@AnkurTiwari谢谢,但你可能忘了留下链接,我想:)啊,对不起@AnkurTiwari谢谢!我读过,我不得不说我已经知道复数表是默认命名的。我想知道的是,为什么可以用复数来命名模型,但真的非常感谢您的回答!我有个问题。这就是为什么命名为复数的模型即使被认为是单数的也能工作的原因吗?如果模型名是复数,则屈折函数库的复数化器函数返回相同的表名。然而,相反的方法是行不通的。如果表名和模型名都是单数形式,默认情况下将无法使用。您需要显式地设置它们之间的关系。