質問

私はテーブルからデータを取得しようとしています。これを行うには、私が使用しました

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/... Justを使用して上記のコードを実行してみました 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. 。リソースのinitがどのように機能するかを見ると、次のとおりです。

/**
 * 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>

他のヒント

メイジの代わりにメイジ:: getModelを使用します:: getModel。

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top