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