最初に言うと、私はSymfonyとDoctrineの両方に本当に慣れておらず、それを学ぶために本当に一生懸命努力しています。このチュートリアルhttp://tutorial.symblog.co.uk/を見つけました。このチュートリアルでは、独自のブログを作成する方法を説明しています。問題は、Symfony 2.0用に設計されており、2.1.5を使用していることです。そのため、途中で、SymfonyとDoctrineの両方で導入された変更によって発生したかなりの数の問題を修正する必要がありました。
しかし、この問題は私が正しい方法で解決できないように思われる問題です。その本当に短い章、合計10〜15行のコード:
http://tutorial.symblog.co.uk/docs/customising-the-view-more-with-twig.html#recent-comments
実際、私を悩ませているのは1行のコードだけです。アクション関数を含むPageControllerがあります。
public function sidebarAction()
{
$em = $this->getDoctrine()->getEntityManager;
$blogRep = $em->getRepository('BloggerBlogBundle:Blog');
//........ stuff here
$em->getRepository('BloggerBlogBundle:Comment') <--------------- THIS
}
いまいましいことはうまくいかないようです!エラーが発生します:
Fatal error: Class 'Blogger\BlogBundle\Entity\CommentRepository' not found in /home/igor/Documents/www/igor/vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php on line 689
重要なこと!:クラス'Blogger....**エンティティ**
エンティティで検索します!
私のリポジトリはBlogger\BlogBundle\Repository名前空間に保存されています。そして最も奇妙なことは、問題なく「BloggerBlogBundle:Blog」リポジトリを検出しますが、コメントを検出しないことです。
どちらも同じフォルダー(Bundles \ Blogger \ BlogBundle \ Repository)にあり、まったく同じ方法で宣言されています。
CommentRepository:
namespace Blogger\BlogBundle\Repository;
class CommentRepository extends EntityRepository
BlogRepository:
namespace Blogger\BlogBundle\Repository;
class BlogRepository extends EntityRepository
どうやってそれを機能させることができたのか
CommentRepositoryファイルを「Entity」ディレクトリに移動し、名前空間をBlogger \ BlogBundle\Entityに変更しました。その場合は完全に機能します。全く問題ありません。しかし、そうすれば、dirや名前空間に散在するリポジトリで立ち往生しています......
DoctrineがBlogger\BlogBundle \ Repositoryでコメントリポジトリではなくブログリポジトリを見つけるのはなぜですか?