DB :: table('table')和model :::''table'之间的区别

时间:2016-05-08 00:05:45

标签: database laravel orm relational-database access

在laravel上我们可以使用DB::table('table')->get();或使用model::('table')->all();进行访问 我的问题是它们之间的区别是什么?

感谢。

1 个答案:

答案 0 :(得分:6)

您可以这样做,因为ModelDB外观都实现了产生Builder实例的函数。

https://laravel.com/api/5.2/Illuminate/Database/Eloquent/Model.html
https://laravel.com/api/5.2/Illuminate/Database/Query/Builder.html

不同之处在于,Model的实例具有设置Builder预设信息的属性,喜欢表,并且还提供事件,关系信息,特定静态绑定,以及一系列其他方便的助手,它们约束对象并使面向对象编程更容易。

所以是的,您可以使用模型,然后使用查询Builder对象并更改其表格(就像您可以更改有关Builder的任何其他内容),但它正在与专门设计的系统进行对抗使查询构建更容易。

从本质上讲,Laravel所做的就是采用Symfony2框架并简化它,以便一切都更简单。模型就是这样的一个例子。