在数据库和模型方面,如何修补工作。?

时间:2016-08-06 09:41:51

标签: php laravel-5

php artisan tinker

如果我输入$owner = new carfreak\Models\CarTitle();修补程序正在实例化我的laravel模型,对吧?

但是如果我输入$vehicle = carfreak\Models\Car::first();,那么修补匠会告诉我Illuminate\Database\QueryException with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'carfreak.Cars' doesn't exist (SQL: select * from 'Cars' limit 1) ....好像它直接与数据库交谈 - 没有涉及模型。 ?!?!?!?

(顺便说一下,我现在还没有汽车或汽车模型)

我错过了什么?

1 个答案:

答案 0 :(得分:2)

对于你的两个问题,它不仅仅是一个修补的东西,而是在路线或控制器内表现相同,所以它更多的是Laravel行为,而不是特定的修补程序。

对于你的第一个问题,是的,思想家只会实例化你的模型类并将其返回。

然后,调用Model::method,如果模型本身不存在method,即。像first laravel将创建Illuminate\Database\Eloquent\Builder的实例并在该查询构建器对象上调用该方法。

因此它变为Illuminate\Database\Eloquent\Builder->first(),返回$this->take(1)->get($columns)->first();。这是对列的正常select查询,然后对模型进行水合并返回它。

因此,在后台首先进行选择查询,然后返回模型,这样您的表就需要存在。