我有一个非常奇怪的错误:
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;
书类:
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 {
更新
我检测到抽象实体中的属性被复制并声明为私有进入扩展实体,但是它是如何发生的?
答案 0 :(得分:0)
首先,尝试清除缓存:php app/console cache:clear
或者如果失败:rm -Rf app/cache/*
我建议将您的实体变量声明为受保护(不确定,但我的意思是我听说过使用公开的问题)。
然后您可以运行php app/console doctrine:generate:entities AcmeDemoBundle
来创建getter / setter。