gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:49:05 28 4
gpt4 key购买 nike

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

谢谢。

最佳答案

您可以这样做,因为 ModelDB facade 都实现了产生 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 的属性, 表,并为其提供事件、关系信息、特定的静态绑定(bind),以及一堆其他方便的助手,它们约束对象并使面向对象的编程更容易。

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

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

关于database - DB::table ('table' ) 和 model::('table' ) 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37094902/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com