我正在尝试构建一个简单的 Magento 模块,该模块需要在每个页面请求开始时连接到数据库。所有表都需要对其进行访问。我一直在拔头发,试图了解如何做到这一点。我能想到的最好的办法是我需要在config.xml
我的模块文件中设置它,但究竟该命令是什么/如何使用它,我无法弄清楚。
有人可以指导我或告诉我如何做到这一点吗?config.php
如果不是,那么包含手动连接到数据库的自定义文件是否太糟糕了?
您是否尝试使用资源模型或实体?这是使用原始 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());
}
我对我的自定义模块使用第二种方法,它对我来说效果很好,希望这个答案有帮助:)
没有的对象addAttributeToFilter
呢?我已经尝试了几个小时按名称加载角色对象,但没有任何效果。唯一可能的方法是加载,如果不是莫名其妙的,它会完美地工作
if (!intval($value) && is_string($value)) {
$field = 'role_id';
}
in Mage_Admin_Model_Mysql4_Role::load
,这只会导致无法使用字符串值进行过滤。
Magento 的Rube Goldberg
架构...