我正在用他的Magento网站帮助一个朋友,我的PHP和Magento经验很少。在实际代码方面,我没有做太多的事情,但是我们想做的一个改变实际上涉及到改变代码。
代码包含以下内容:
$model = Mage::getModel('catalog/product');
$_product = $model->load($entity_id);
$bedroom = $_product->getTotalrooms();
以上工作正常,我想补充以下内容:
enter code here`$bathroom = $_product->getTotalbathrooms();
我已经在“属性”页面中添加了总浴室,并试图使其与总房相同,我现在看到的唯一区别是,在系统列中,对于总房间,它说“是”但是对于总浴室,它说“不”。 我更新了表单中的html以添加新地点并更新了产品页面的html,但目前它没有显示no。浴室。 您可以在此处查看示例产品:http://book.bnbtlv.com/index.php/bathroom-test.html。如果您滚动到页面中间,您会发现浴室没有价值。卧室是4。但
我遇到的一个问题是getTotalrooms是在任何地方定义的,还是以某种方式自动创建的?如果它是手动定义的,那么那里我也可以在那里定义getTotalbathrooms? 另外,我在哪里可以找到调用setTotalrooms的地方?我猜到目前我的产品从未调用过setTotalbathrooms。
最后,当我进入管理页面上的“管理产品”页面并单击产品然后单击“产品信息”时,我看到没有房间,但我看不到浴室的数量。如何获得此页面上显示的浴室数量并可由管理员编辑?
由于
答案 0 :(得分:1)
首先,getTotalRooms()未在nmagento中的任何位置定义,它会从您创建的属性中获取。
我认为您的问题是您错过了将已创建的属性添加到属性集中,然后使用重新索引选项重新索引数据。
在属性页面上创建属性后,您需要将该属性添加到产品正在使用的属性集中。
答案 1 :(得分:1)
$_product->getTotalrooms()
是Magento的Magic getter-setter方法的一部分,它适用于Model实例的数据对象。
print_r($_product->getData());
会告诉您与您相关的所有数据
产品。您可以通过
$_product->getData('my_attribute');
或$_product->getMyAttribute();
命名定罪是->get
之后,在下划线为大写之后,第一个字母大写为大写字母。
同样适用于setter方法。
$_product->setTotalrooms('5')->save();
为您的产品节省的总房间数为5.
我认为您在$bathroom = $_product->getTotalbathrooms();
遇到的问题是您在这里使用了错误的命名。检查print_r($_product->getData());
并更正。