我正在帮助一个朋友建立他的Magento网站,我几乎没有PHP和Magento经验。在实际代码方面,我不必做太多,但是我们想要进行的一项更改实际上涉及更改代码。
代码包含如下内容:
$model = Mage::getModel('catalog/product');
$_product = $model->load($entity_id);
$bedroom = $_product->getTotalrooms();
以上工作正常,我想补充以下内容:
enter code here`$bathroom = $_product->getTotalbathrooms();
我已将总浴室添加到属性页面,并试图使其与总房间相同,我现在看到的唯一区别是在系统列中,对于总房间,它说是,但对于总浴室,它说否。我已经更新了表单中的 html 以添加新位置并更新了产品页面的 html,但目前它没有显示否。的浴室。您可以在此处查看示例产品:http://book.bnbtlv.com/index.php/bathroom-test.html。如果你滚动到页面中间,你会注意到浴室没有价值。卧室是4间卧室。
我的一个问题是,getTotalrooms是在任何地方定义的,还是以某种方式自动创建的?如果它是手动定义的,那么它会在哪里,所以我也可以在那里定义 getTotalbathroom?另外,我在哪里可以找到setTotalrooms的地方?我猜目前我的产品从未要求使用setTotalbathrooms。
最后,当我转到管理页面上的"管理产品"页面并单击产品,然后单击"产品信息"时,我看到房间数量,但没有看到浴室数量。如何让浴室数量显示在此页面上并可由管理员编辑?
谢谢
首先,getTotalRooms(( 没有在 nmagento 中的任何位置定义,它是从您创建的属性中获取的。
我认为您的问题是您错过了将创建的属性添加到属性集,然后使用重新索引选项重新索引数据。
在属性页面上创建属性后,您需要将该属性添加到商品正在使用的属性集中。
请参阅此视频:http://www.youtube.com/watch?v=MqhCcCpR4DI
$_product->getTotalrooms()
是Magento的Magicgetter-setter方法的一部分,该方法适用于模型实例的数据对象。
print_r($_product->getData());
将让您了解与您的产品。您可以通过以下方式直接获取任何数据
$_product->getData('my_attribute');
或$_product->getMyAttribute();
命名信念是第一个字母大写,而不是字母在下划线之后是大写的->get
。
二传手方法也是如此。 $_product->setTotalrooms('5')->save();
将为您的产品将总房间字段保存为 5。
我认为您在$bathroom = $_product->getTotalbathrooms();
面临的问题是您在这里使用了错误的命名。检查print_r($_product->getData());
并更正它。