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