私はSymfonyチュートリアルに従っていました。私の製品エンティティのリポジトリを手で作成していましたが、コンソールを使用して作成していませんでした。もともと注釈はこのように見えた:symfonyリポジトリが間違った場所に作成されました
/**
* Product
*
* @ORM\Table(name="product")
* @ORM\Entity(repositoryClass="AppBundle\Entity\ProductRepository")
*/
が、私はそれが正しい位置にあるように、私はそれを変更しようとしているエンティティとリポジトリを作成するために、コンソールを使用するために学んでいるよう。コンソールは、作成したすべてのコンソールをRepositoryディレクトリに置きました。私の製品のエンティティは現在、(手で変更された)次のようになります。
/**
* Product
*
* @ORM\Table(name="product")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")
*/
をしかし、私は、このコマンドに
# php bin/console doctrine:generate:entities AppBundle
OR
# php bin/console doctrine:generate:entities AppBundle/Entity/Product
リポジトリがエンティティディレクトリで終わるを発行すると、リポジトリではありません。私はこの問題を見上げるとDoctrineのキャッシュのように見えますが、私は運でそれをクリアするには、次のコマンドを試してみましたている:
php bin/console doctrine:cache:clear-metadata
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-result
私もコンソール経由でエンティティを再作成しようとしたが、それは、ファイルを作成し続けて間違った場所。時々、それは正しい場所にブラウザをリフレッシュするために配置されますが、それを見つけることができないと文句を言います(Entityディレクトリでそれを探しているので)。
誰かがDoctrineを真っ直ぐ助けてくれますか?完全に見ることができます:
<?php
namespace AppBundle\Entity; //<--- This is one of the issues. See answer
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Product
*
* @ORM\Table(name="product")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ProductRepository")
*/
class Product
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
...