【问题标题】:Difference between DB::table('table') and model::('table')DB::table('table') 和 model::('table') 的区别
【发布时间】:2016-09-02 20:33:28
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: database laravel orm relational-database


    【解决方案1】:

    您可以这样做,因为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 的实例具有使用预先指定的信息、like 表设置Builder 的属性,并且还为其提供事件、关系信息、特定静态绑定和一堆其他方便的助手,它们限制对象并使面向对象编程更容易。

    所以是的,您可以使用模型,然后获取查询 Builder 对象并更改其表(就像您可以更改有关 Builder 的任何其他内容一样),但它与专门设计用于构建查询的系统作斗争更容易。

    本质上,Laravel 所做的是采用 Symfony2 框架并对其进行精简,因此一切都变得更简单。模型就是这样的一个例子。

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 2015-04-02
      • 2021-02-13
      • 2020-02-01
      • 2019-07-20
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多