我正在尝试构建一个简单的Magento模块,它需要在每个页面请求开始时连接到数据库。所有表都需要可访问。我一直在试着理解如何去做我的头发。我能想到的最好的是我需要在我的模块的config.xml
文件中设置它,但确切地说该命令是什么/如何使用它,我无法弄清楚。
有人可以指导我或告诉我如何做到这一点?如果没有,那么包含手动连接到数据库的自定义config.php
文件是不是太糟糕了?
答案 0 :(得分:16)
您是否尝试使用资源模型或实体?以下是使用原始SQL查询表的方法,但您需要知道表名。
$w = Mage::getSingleton('core/resource')->getConnection('core_write');
$result = $w->query('select entity_id from catalog_product_entity');
if (!$result) {
return false;
}
$row = $result->fetch(PDO::FETCH_ASSOC);
if (!$row) {
return false;
}
尝试所有模型时,您可以使用
$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('entity_id', array('in' => array(1,2)));
$products->addAttributeToSelect('*');
$products->load();
foreach ($products as $_prod) {
var_dump($_prod->getData());
}
我为我的自定义模块使用第二种方法,它对我来说很好,希望这个答案有所帮助:)
答案 1 :(得分:0)
没有addAttributeToFilter
的对象呢?我已经花了好几个小时来按名称加载角色对象,没有任何作用。唯一可能的方法是加载,如果不是对于无法解释的
if (!intval($value) && is_string($value)) {
$field = 'role_id';
}
Mage_Admin_Model_Mysql4_Role::load
中的,只能使用字符串值进行过滤。
Magento有一个Rube Goldberg
架构......