2011-01-13 30 views
7

Magento的构造其SQL查询,如如何将Magento sql查询显示为字符串?

$this->getSelect()->joinInner(
     array('sbao' => $this->getTable('sales/billing_agreement_order')), 
     'main_table.entity_id = sbao.order_id', 
     array() 
    ) 

有没有显示字符串格式生成的查询,而不是如打印出的巨大物体的方式

echo $this->getSelect()->joinInner(
     array('sbao' => $this->getTable('sales/billing_agreement_order')), 
     'main_table.entity_id = sbao.order_id', 
     array() 
    )->toString(); 

回答

13
$select = $this->getSelect()->joinInner(
     array('sbao' => $this->getTable('sales/billing_agreement_order')), 
     'main_table.entity_id = sbao.order_id', 
     array() 
    ); 

echo $select; 
4

我差不多已经为那些感兴趣的人使用了 - > __ toString()例如

echo $this->getSelect()->joinInner(
    array('sbao' => $this->getTable('sales/billing_agreement_order')), 
    'main_table.entity_id = sbao.order_id', 
    array() 
)->__toString() 
+2

回声刚好够,因为它有它自己的toString方法 – 2011-01-13 13:02:28

+1

,有时你需要转换其自动触发`__toString`方法。类似`echo(string)$ this-> getSelect ...' – clockworkgeek 2011-01-13 13:24:55