mage :: getModel('模块/模型') - > getData返回一个空数组
-
16-10-2019 - |
题
我正在尝试从表中获取数据。为此,我使用过
mage::getModel('module/model')->getData
这已经返回一个空数组,但是我无法弄清为什么我正在调用的表持有数据的原因。
这个模型之间存在差异
class Ps_Prefs_Model_Prefsformelements
extends Mage_Core_Model_Abstract
{
protected function _construct()
{
$this->_init('ps_prefs/prefsformelements');
}
}
class Ps_Prefs_Model_Resource_Prefsformelements
extends Mage_Core_Model_Resource_Db_Abstract
{
protected function _construct()
{
$this->_init('ps_prefs/prefsformelements', 'idform_elements');
}
}
class Ps_Prefs_Model_Resource_Prefsformelements_Collection
extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
protected function _construct()
{
$this->_init('ps_prefs/prefsformelements');
}
}
和我的模块中的其他型号。该描述在于 namespace_module/...
电话的一部分。如您所见,该模型使用 namespace_module/...
虽然我的其他型号正常工作 module/...
我尝试使用以上代码仅使用 module/...
但是我得到了错误 can't retrieve entity config
但是,如果我尝试使用此操作 namespace_module/...
我开始扔错误为什么?
我已经考虑了我的配置 namespace_module/...
当我符合其他模型时,为什么它不起作用?
===
编辑
===
<config>
...
<global>
<models>
<prefs>
<class>Ps_Prefs_Model</class>
<resourceModel>prefs_resource</resourceModel>
</prefs>
<prefs_resource>
<class>Ps_Prefs_Model_Resource</class>
<entities>
<prefs>
<table>prefcentre</table>
</prefs>
<prefsemail>
<table>prefcentre_options</table>
</prefsemail>
<prefsform>
<table>pref_form_elements</table>
</prefsform>
</entities>
</prefs_resource>
</models>
...
</global>
...
</config>
解决方案
我认为问题是您没有表格的定义 prefs/prefsformelements
. 。如果您查看资源的初始化方式,则需要以下内容:
/**
* Standard resource model initialization
*
* @param string $mainTable
* @param string $idFieldName
* @return Mage_Core_Model_Resource_Abstract
*/
protected function _init($mainTable, $idFieldName)
{
$this->_setMainTable($mainTable, $idFieldName);
}
因此,查看此和您的config.xml,您缺少匹配的表 prefsformelements
但是您的其他人可能会把名字混合在一起。
<prefsformelements>
<table>pref_form_elements</table>
</prefsformelements>
其他提示
使用Mage :: GetModel而不是Mage :: GetModel。