Laravel在创建模型时扩展了Eloquent

时间:2015-01-26 18:15:53

标签: php laravel laravel-4 eloquent

在Laravel中创建基本模型时,我扩展了Eloquent类,以便我的模型具有所有令人敬畏的Eloquent功能。例如:

class Product extends \Eloquent {
    //class definition here
}

我一直在阅读Laravel框架源代码,而且我不明白这个Eloquent类实际来自哪里。我可以看到有一个Illuminate\Database\Eloquent\Model类,它似乎具有我期望从Eloquent类扩展的所有功能,但我对这种继承感到困惑实际上是在工作,因为我正在推广Eloquent,而不是Illuminate\Database\Eloquent\Model

这是如何运作的?

1 个答案:

答案 0 :(得分:2)

如果查看文件“config / app.php”的内容,您会在文件底部找到一个“别名”键。这就是在引擎盖下做所有魔术的原因。 Laravel允许您为别名添加别名,您也可以将其添加到“config / app.php”文件中,这样您就不必在代码中使用长的完全限定名称。

正如您所看到的,您正在扩展的实际类是“Illuminate \ Database \ Eloquent \ Model”,其别名为“Eloquent”,因此您只需要扩展“Eloquent”。