如何输出/记录Fuel PHP的Orm查询生成的sql查询?

ste*_*tef 5 fuelphp

是否有某种方法可以记录或输出从a Model_Orm::query()或a 生成的mysql查询字符串Model_Orm::find()

我有一个复杂的Orm::query(),没有给我我期望的结果,我想知道为什么!

Ben*_*rne 9

在执行任何运行查询的操作之后,请执行以下任何操作

\Model_Something::find('all');
\Model_Something::query()...
\DB::query()...
\DB::select()...
Run Code Online (Sandbox Code Playgroud)

您可以使用

echo \DB::last_query();
Run Code Online (Sandbox Code Playgroud)

通过您用于查询数据库的任何方式查看上次运行的内容.

从生产代码中获取的工作示例:

$product = Model_Product::find('all', array(
     'related' => array(
              'i18ns',
     ),
     'where' => array(
              array('i18ns.variant_slug', $slug)
     )
));

echo \DB::last_query();
exit;

SELECT `t0`.`family_id` AS `t0_c0`, `t0`.`type_id` AS `t0_c1`,
       `t0`.`sort_weight` AS `t0_c2`, `t0`.`active` AS `t0_c3`,
       `t0`.`attribute_set` AS `t0_c4`, `t0`.`created_at` AS `t0_c5`,
       `t0`.`updated_at` AS `t0_c6`, `t0`.`site_id` AS `t0_c7`,
       `t0`.`temporal_start` AS `t0_c8`, `t0`.`temporal_end` AS `t0_c9`,
       `t0`.`id` AS `t0_c10`, `t1`.`id` AS `t1_c0`, `t1`.`product_id` AS `t1_c1`,
       `t1`.`language_id` AS `t1_c2`, `t1`.`slug` AS `t1_c3`,
       `t1`.`variant_slug` AS `t1_c4`, `t1`.`title` AS `t1_c5`,
       `t1`.`description` AS `t1_c6`, `t1`.`temporal_start` AS `t1_c7`,
       `t1`.`temporal_end` AS `t1_c8`
FROM `products` AS `t0`
LEFT JOIN `product_i18n` AS `t1`
     ON (`t0`.`id` = `t1`.`product_id`)
WHERE `t1`.`variant_slug` = 'test-product'
Run Code Online (Sandbox Code Playgroud)