我正在学习使用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。