Laravel 的查询生成器有什么好处?
What is the benefit of Laravel's query builder?
我正在学习使用 Laravel 5,但我正处于查询构建器阶段,在查看第一个代码片段后,我认为当有人具有基本的 SQL 知识时它真的没用。
示例:
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();
如果程序员实际上至少具有 SQL 语言的基本知识,那么学习查询构建器语法的目的是什么?此外,将高级查询从干净的 SQL 语言移动到查询构建器函数看起来就像一场噩梦...
除了当你想切换数据库引擎时它提供了一个接口(但老实说,你见过多少次大型应用程序实际上切换数据库引擎?),我真的没有看到太多优势.当然,这是更多 "Eloquent" 和 "Laravel" 的做事方式——它本身就足以卖给那里的框架纯粹主义者。
如果有的话,我认为使用查询生成器会使新开发人员的入职变得更加困难。 SQL 是几乎所有开发人员都知道的通用语言。如果您的团队中有一位新成员不太了解 Laravel,他很可能需要一天的时间才能跟上查询生成器的速度。
我已经开始接受在我的 Eloquent 模型中使用关系进行简单的一个 table 连接,或使用引用 table 进行两个 table 连接。但是任何需要超过两个连接的东西,你真的应该写出你自己的 SQL 或使用查询构建器。在这两个选择中,我个人更喜欢写原始 SQL。
我正在学习使用 Laravel 5,但我正处于查询构建器阶段,在查看第一个代码片段后,我认为当有人具有基本的 SQL 知识时它真的没用。
示例:
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();
如果程序员实际上至少具有 SQL 语言的基本知识,那么学习查询构建器语法的目的是什么?此外,将高级查询从干净的 SQL 语言移动到查询构建器函数看起来就像一场噩梦...
除了当你想切换数据库引擎时它提供了一个接口(但老实说,你见过多少次大型应用程序实际上切换数据库引擎?),我真的没有看到太多优势.当然,这是更多 "Eloquent" 和 "Laravel" 的做事方式——它本身就足以卖给那里的框架纯粹主义者。
如果有的话,我认为使用查询生成器会使新开发人员的入职变得更加困难。 SQL 是几乎所有开发人员都知道的通用语言。如果您的团队中有一位新成员不太了解 Laravel,他很可能需要一天的时间才能跟上查询生成器的速度。
我已经开始接受在我的 Eloquent 模型中使用关系进行简单的一个 table 连接,或使用引用 table 进行两个 table 连接。但是任何需要超过两个连接的东西,你真的应该写出你自己的 SQL 或使用查询构建器。在这两个选择中,我个人更喜欢写原始 SQL。