0

非常に奇妙なエラーがあります:

Fatal error: Access level to Acme\DemoBundle\Entity\Book::$title
must be public (as in class Acme\DemoBundle\Entity\AbstractBook) in   
/var/www/html/src/Acme/DemoBundle/Entity/Book.php on line 614 Call 
Stack: 0.0002 674960 1

行 614 は使用できません。最もクレイジーなことは、エンティティ フォルダー全体を IDE からローカルの ubunutu イメージに手動でアップロードすると、エラーが発生しないことです。

これは私のAbstractBookEntityです:

 namespace Acme\DemoBundle\Entity;

 use Doctrine\ORM\Mapping as ORM;
 use Symfony\Component\Validator\Constraints as Assert;

 /** 
 * @ORM\MappedSuperclass 
 * @ORM\HasLifecycleCallbacks
 */
class AbstractBook
{



/**
 * @var string $title
 *
 * @ORM\Column(name="title", type="string", length=45, nullable=true)
 */
public $title;

Book クラス:

namespace Acme\DemoBundle\Entity;

use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ORM\Mapping as ORM;

/**
 * Acme\DemoBundle\Entity\Book
 *
 * @ORM\Table(name="book")
 * @ORM\Entity(repositoryClass="Acme\DemoBundle\Repository\BookRepository")       
 */
class Book extends AbstractBook {

アップデート:

抽象エンティティからの属性がコピーされ、拡張エンティティにプライベートとして宣言されていることを検出しましたが、どのように発生しますか?

4

1 に答える 1

0

まず、キャッシュをクリアしてみてください。php app/console cache:clearまたは、これが失敗した場合:rm -Rf app/cache/*

エンティティ変数を保護されていると宣言することをお勧めします(わかりませんが、publicの使用に関する問題について聞いたことがあるということです)。

php app/console doctrine:generate:entities AcmeDemoBundle次に、ゲッター/セッターを作成するために実行できます。

于 2013-02-14T10:31:58.907 に答える