2016-04-05 2 views
0

私はAlan Storm's Weblog tutorialで作業しています。モデル(Model-> load(id))から単一のレコードを取得できますが、Model-> getCollection()の呼び出しはfalseを返しています。Magento getCollection()はfalseを返します

<?php 
class Magentotutorial_Weblog_Model_Blogpost extends Mage_Core_Model_Abstract 
{ 
    protected function _construct() 
    { 
     $this->_init('weblog/blogpost'); 
    } 
} 

マイリソース:アプリ/コード/ローカル/ Magentotutorial /ブログ/モデル/ Blogpost.phpで

<global> 
    <models> 
     <weblog> 
      <class>Magentotutorial_Weblog_Model</class> 
      <resourceModel>weblog_resource</resourceModel> 
     </weblog> 
     <weblog_resource> 
     <class>Magentotutorial_Weblog_Model_Resource</class> 
     <entities> 
      <blogpost> 
       <table>blog_posts</table> 
      </blogpost> 
     </entities> 
     </weblog_resource> 
    </models> 
</global> 

マイモデル:ここで

は私のconfig.xmlからグローバルセクションですアプリ/コード/ローカル/ Magentotutorial /ブログ/モデル/リソースでモデル/ Blogpost.php - これは動作しますが、私が呼び出すことができるモデル - 首尾>負荷(ID):

<?php 
class Magentotutorial_Weblog_Model_Resource_Blogpost extends Mage_Core_Model_Resource_Db_Abstract { 
    protected function _construct() 
    { 
     $this->_init('weblog/blogpost', 'blogpost_id'); 
    } 
} 
アプリ/コード/ローカル/ Magentotutorial /ブログ/モデル/リソース/ブログ投稿/ Collection.phpで0

マイコレクションクラス:

<?php 
class Magentotutorial_Weblog_Model_Resource_Blogpost_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract { 
    protected function _construct() 
    { 
      $this->_init('weblog/blogpost'); 
    } 
} 

コレクションを取得しようとすると、コントローラのメソッド。 var_dumpコールプリント "BOOL(偽)":

public function showAllBlogPostsAction() { 
    $posts = Mage::getModel('weblog/blogpost')->getCollection(); 
    var_dump($posts); 
    foreach($posts as $blogpost){ 
     echo '<h3>'.$blogpost->getTitle().''; 
     echo nl2br($blogpost->getPost()); 
} 

}

ここでは、モジュールのための私のソースツリーです: enter image description here

アップデート:私はCollection.phpファイルがないと判断しました含まれています。このファイルを手動で(indexController.phpから)インクルードすると、そのファイルは機能します。今私はファイルが含まれていない理由を把握しようとしています。

ありがとうございました!

答えて

0

チュートリアルをコーディングしているときに、私はフォルダ名またはクラスのいずれかの大文字と小文字を混乱させました。私はどこかでBlogPostを使ったと信じています。あなたは、ファイルまたはディレクトリの名前を変更するときに、あなたがキャッシュをクリアする必要があり、私はそれを固定し、私は私が働いているサイトはclass path cacheがインストールされていることを知りませんでした:

sitename/shell>php aoe_classpathcache.php -action clear 

最初

Fatal error: Uncaught exception 'PDOException' with message 
'SQLSTATE[HY000] [2002] No such file or directory' in... 

は、私は私のアプリの/ etc/local.xmlで「127.0.0.1」に「localhost」を変更しなければならなかったことを修正するには:時間私は私が得た、ことを走りました。

関連する問題