3

Magento Admin 部分で 1 つのエラーに直面しています。カテゴリを作成しようとすると、次の致命的なエラーが表示されます。

致命的なエラー: 331 行目の C:\wamp\www\magento\lib\Varien\Data\Tree\Dbp.php の非オブジェクトに対するメンバー関数 getId() の呼び出し

 public function loadEnsuredNodes($category, $rootNode)
 {
    $pathIds = $category->getPathIds();
    $rootNodeId = $rootNode->getId();
    $rootNodePath = $rootNode->getData($this->_pathField);

    $select = clone $this->_select;
    $select->order($this->_table.'.'.$this->_orderField . ' ASC');

誰でも私を助けることができますか?この問題を解決するには?誰かが私に解決策を提案できますか?

4

3 に答える 3

0

うーん。コア コードのデバッグ。私はいつもこれをしなければなりません。

そのコードに try catch を配置し、結果を error_log に記録します。これにより、どの回線に問題があるかをより正確に把握できます。結果についてはphpログを確認してください

public function loadEnsuredNodes($category, $rootNode)
 {
    try {
       $pathIds = $category->getPathIds();
       $rootNodeId = $rootNode->getId();
       $rootNodePath = $rootNode->getData($this->_pathField);

       $select = clone $this->_select;
       $select->order($this->_table.'.'.$this->_orderField . ' ASC');

    } catch (Exception $e) {
        error_log($e);
    } 

エラーが続く場合は、隔離された環境でコードを使用してみてください。ファイル test.php を作成し、magento ルートに配置します。

<?php
   umask(0);
   require_once 'app/Mage.php';
   Mage::app('admin');
   echo "<PRE>";

   $category_id = 12;
   $rootNode = ??? load a root node what is this?

   $category = Mage::getModel('catalog/category')->load($category_id);
   var_dump($category->debug());

   $pathIds = $category->getPathIds();
   var_dump($pathIds);

   $rootNodeId = $rootNode->getId();
   var_dump($rootNodeId);

于 2013-02-28T14:30:47.097 に答える
0

この答え

INSERT INTO catalog_category_entity(entity_id,entity_type_id,attribute_set_id,parent_id,created_at,updated_at,path,POSITION,level,children_count) VALUES (1,3,0,0,'0000-00-00 00:00:00','2009-02-20 00:25:34','1',1,0,1),(2,3,3,0,'2009-02-20 00:25:34','2009-02-20 00:25:34','1/2',1,1,0);
INSERT INTO catalog_category_entity_int(value_id,entity_type_id,attribute_id,store_id,entity_id,value) VALUES (1,3,32,0,2,1),(2,3,32,1,2,1); 
INSERT INTO catalog_category_entity_varchar(value_id,entity_type_id,attribute_id,store_id,entity_id,value) VALUES (1,3,31,0,1,'Root Catalog'),(2,3,33,0,1,'root-catalog'),(3,3,31,0,2,'Default Category'),(4,3,39,0,2,'PRODUCTS'),(5,3,33,0,2,'default-category');    

私の一日を救ってくれてありがとう!...しかし、私はデータベースにテーブルプレフィックスを持っていたので、それが誰かの変更に対して機能しない場合に備えて...すべて私は3 "INSERT INTO catalog_category_entity"を信じています"INSERT INTO _add_your_database prefix here_catalog_category_entity

そしてそれはうまくいくはずです...とにかく助けてくれてありがとう!

于 2015-01-11T00:35:03.013 に答える