2

こんにちは、magento 1.7.0.2 を使用しています。構成に移動するときに拡張機能 (パーソナル バー) をインストールしようとすると、次のエラーが表示されます。

致命的なエラー: 463 行目の app/code/core/Mage/Adminhtml/Block/System/Config/Form.php の非オブジェクトに対するメンバー関数 toOptionArray() の呼び出し

463行目:$optionArray = $sourceModel->toOptionArray($fieldType == 'multiselect');

あなたは私を助けることができますか?

                    $sourceModel = Mage::getSingleton($factoryName);
                if ($sourceModel instanceof Varien_Object) {
                    $sourceModel->setPath($path);
                }
                if ($method) {
                    if ($fieldType == 'multiselect') {
                        $optionArray = $sourceModel->$method();
                    } else {
                        $optionArray = array();
                        foreach ($sourceModel->$method() as $value => $label) {
                            $optionArray[] = array('label' => $label, 'value' => $value);
                        }
                    }
                } else {
                    $optionArray = $sourceModel->toOptionArray($fieldType == 'multiselect');
                }
                $field->setValues($optionArray);
            }
4

6 に答える 6

5

app\code\core\Mage\Adminhtml\Block\System\Config\Form.php に移動します

463行目で次を見つけてください

$optionArray = $sourceModel->toOptionArray($fieldType == ‘multiselect’);

そしてそれを次のように置き換えます:

if(is_object($sourceModel)){
$optionArray = $sourceModel->toOptionArray($fieldType == ‘multiselect’);
} else {
Mage::log($e->source_model);
}
于 2013-08-19T14:26:59.803 に答える
4

ソースモデルが何らかの属性を定義している場合に可能です。eav_attribute テーブルの source_model フィールドを確認してください。一部のエントリが間違っているか、欠落している可能性があります。

于 2013-04-25T06:37:48.380 に答える
1

私の場合、次の手順で解決しました:-

  1. コンパイルを無効にする( System -> Tools -> Compilation)
  2. キャッシュの更新( System -> Cache Management)
于 2016-06-09T11:52:12.940 に答える
0

ファイルのアクセス許可を確認し、拡張機能が正しくインストールされていて、すべてのファイルがサーバー上にあるかどうか、およびこのエラーを発生させる config フィールドの backend_model が存在するかどうかを確認してください

于 2013-04-25T06:37:43.647 に答える