当前位置: 首页 > 面试题库 >

获取在Laravel 3/4中执行的查询

夏侯华彩
2023-03-14
问题内容

如何使用Laravel Query Builder或Eloquent ORM在Laravel 3/4中检索原始执行的SQL查询?

例如,如下所示:

DB::table('users')->where_status(1)->get();

要么:

(posts (id, user_id, ...))

User::find(1)->posts->get();

否则,至少如何将所有执行的查询保存到laravel.log?


问题答案:

在Laravel 4和更高版本中,您必须调用DB::getQueryLog()以获取所有已运行的查询。

$queries = DB::getQueryLog();
$last_query = end($queries);

或者,您可以下载探查器软件包。我建议使用barryvdh / laravel-
debugbar
,它非常简洁。您可以阅读有关如何在其存储库中进行安装的说明。

Laravel 5用户注意事项:DB::enableQueryLog()在执行查询之前,您需要先致电。在运行查询的行的上方或在中间件内部。

Laravel 3

在Laravel 3中,您可以从Eloquent调用类last_query上静态方法的模型中获取最后执行的查询DB

DB::last_query();

但是,这要求您在中启用该profiler选项application/config/database.php。或者,如@dualed所述,您可以启用profilerin
application/config/application.php或调用此选项,DB::profile()以使所有查询在当前请求及其执行时间中运行。



 类似资料:
  • 如何使用Laravel query Builder或雄辩的ORM在Laravel 3/4中检索原始执行的SQL查询? 例如,如下所示:

  • 问题内容: 我想知道使用PHP PDO执行什么查询。我有: 我想得到类似的东西: 可能吗?谢谢 问题答案:

  • 问题内容: 在JUnit 3中,我可以这样获得当前正在运行的测试的名称: 它将显示“当前测试是testSomething”。 在JUnit 4中,有什么现成的或简单的方法可以做到这一点吗? 背景:显然,我不想只打印测试的名称。我要加载存储在与测试名称相同的资源中的特定于测试的数据。您知道,约定优于配置以及所有其他内容。 问题答案: JUnit 4.7似乎使用TestName-Rule添加了此功能。

  • 问题内容: 我有一个带有库的IntelliJ项目:Hibernate-entitymanager 4.3.4和JPA 2.0-2.0。使用postgresql-9.3.1100.jdbc4连接到数据库。如何解决? jpa-ql>从ItemEntity中选择ItemEntity.name; 问题答案: 只需阅读文档: http://docs.oracle.com/javaee/7/api/javax

  • 问题内容: 我正在使用内部联接从2个表中查询一些数据。 这是查询, 现在,我只想要每个user_id的第一行。 像这样, 我应该为此使用什么查询? 问题答案: 这应该可以解决问题:

  • 问题内容: 我想知道如何检索由表适配器执行的SQL查询以进行记录。 例如: 输入: 输出: 我要记录的是insert语句,该语句由表适配器生成以执行insert命令。 我怎样才能做到这一点?有人对此有任何建议吗? 问题答案: 您可以使用此替代方法,并用其值替换ParameterName,但效果不好,因为您需要自己管理值格式,这可能很慢, 并且在执行Insert后需要获取参数。 代码: