我按照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
庫在實體目錄結束,而不是庫。我已經看過了這個問題,看起來像學說的緩存,但我已經嘗試下面的命令,沒有運氣來清除它:
php bin/console doctrine:cache:clear-metadata
php bin/console doctrine:cache:clear-query
php bin/console doctrine:cache:clear-result
我甚至試圖通過控制檯重新創建實體,但它仍然在文件中創建錯誤的地方。偶爾它會將它放在正確的位置以便刷新一次瀏覽器,但隨後會發現它找不到它(因爲它正在Entity目錄中查找它。)
任何人都可以幫我理清原理嗎?可以充分看到:
<?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;
...