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

H.F*_*her 6 database orm relational-database laravel access

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

谢谢.

Jos*_*osh 6

您可以这样做,因为Model并且DBFacade都实现了产生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框架并对其进行简化,从而使一切变得更加简单。模型就是这种情况的一个例子。