在laravel上我们可以使用DB::table('table')->get();
或使用model::('table')->all();
进行访问
我的问题是它们之间的区别是什么?
感谢。
答案 0 :(得分:6)
您可以这样做,因为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
的实例具有设置Builder
预设信息的属性,喜欢表,并且还提供事件,关系信息,特定静态绑定,以及一系列其他方便的助手,它们约束对象并使面向对象编程更容易。
所以是的,您可以使用模型,然后使用查询Builder
对象并更改其表格(就像您可以更改有关Builder
的任何其他内容),但它正在与专门设计的系统进行对抗使查询构建更容易。
从本质上讲,Laravel所做的就是采用Symfony2框架并简化它,以便一切都更简单。模型就是这样的一个例子。