【发布时间】:2016-09-02 20:33:28
【问题描述】:
在 laravel 上,我们可以使用 DB::table('table')->get(); 或 model::('table')->all(); 访问
我的问题是它们之间有什么区别?
谢谢。
【问题讨论】:
标签: database laravel orm relational-database
在 laravel 上,我们可以使用 DB::table('table')->get(); 或 model::('table')->all(); 访问
我的问题是它们之间有什么区别?
谢谢。
【问题讨论】:
标签: database laravel orm relational-database
您可以这样做,因为Model 和DB 外观都实现了产生Builder 实例的函数。
https://laravel.com/api/5.2/Illuminate/Database/Eloquent/Model.html
https://laravel.com/api/5.2/Illuminate/Database/Query/Builder.html
不同之处在于,Model 的实例具有使用预先指定的信息、like 表设置Builder 的属性,并且还为其提供事件、关系信息、特定静态绑定和一堆其他方便的助手,它们限制对象并使面向对象编程更容易。
所以是的,您可以使用模型,然后获取查询 Builder 对象并更改其表(就像您可以更改有关 Builder 的任何其他内容一样),但它与专门设计用于构建查询的系统作斗争更容易。
本质上,Laravel 所做的是采用 Symfony2 框架并对其进行精简,因此一切都变得更简单。模型就是这样的一个例子。
【讨论】: