从集合模型中获取sql查询

时间:2014-10-27 10:22:52

标签: mysql magento model

我知道我们可以使用这个来从magento模型集合中获取sql查询,

getSelect();

但是我只能从模型集合中获取查询,而不是在其他模型集合中查询或者我可能不知道如何使用它。

在这里,我想知道在这背后运行什么查询,

$productModel = Mage::getModel('catalog/product')->getCollection();
$attr = $productModel->getResource()->getAttribute("color");
if ($attr->usesSource()) {
    echo $color_label = $attr->getSource()->getOptionText("28");
}

如果我使用它,

echo $productModel->getSelect(); exit;

我只是查询一部分,例如,

SELECT `e`.* FROM `catalog_product_entity` AS `e`

更新

这是我的完整代码,

<?php

require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();

$productModel = Mage::getModel('catalog/product')->getCollection();
$attr = $productModel->getResource()->getAttribute("color");
if ($attr->usesSource()) {
    $color_label = $attr->getSource()->getOptionText("28");
}


$productModel->printlogquery(true);exit;

请帮帮我们,

3 个答案:

答案 0 :(得分:2)

您的订单条件在查询中不可见。您的订单未显示的原因是因为在load()方法期间将订单添加到查询中。

请参阅Varien_Data_Collection_Db::load()

尝试调用load(true)以查看包含order by子句的完整SQL。

$productModel->load(true);
$productModel->printLogQuery(true);

希望它有所帮助。

答案 1 :(得分:1)

如果您想查看确切查询的内容,可以使用以下方法获取:

$productModel->printlogquery(true);exit;

在加载模型的对象并应用所有条件后使用此代码。

我希望这会对你有所帮助。

答案 2 :(得分:1)

Magento收集大量内部查询数据 - 模型和大量检查,可能超过1个表。因此无法像我正在寻找的那样获得查询。