在Laravel中创建基本模型时,我扩展了Eloquent
类,以便我的模型具有所有令人敬畏的Eloquent功能。例如:
class Product extends \Eloquent {
//class definition here
}
我一直在阅读Laravel框架源代码,而且我不明白这个Eloquent
类实际来自哪里。我可以看到有一个Illuminate\Database\Eloquent\Model
类,它似乎具有我期望从Eloquent
类扩展的所有功能,但我对这种继承感到困惑实际上是在工作,因为我正在推广Eloquent
,而不是Illuminate\Database\Eloquent\Model
。
这是如何运作的?
答案 0 :(得分:2)
如果查看文件“config / app.php”的内容,您会在文件底部找到一个“别名”键。这就是在引擎盖下做所有魔术的原因。 Laravel允许您为别名添加别名,您也可以将其添加到“config / app.php”文件中,这样您就不必在代码中使用长的完全限定名称。
正如您所看到的,您正在扩展的实际类是“Illuminate \ Database \ Eloquent \ Model”,其别名为“Eloquent”,因此您只需要扩展“Eloquent”。