我试图从symfony simple cms bundle中extend the default Page class。
问题:
自定义属性不会保留。
以下是从BasePage扩展的类的代码。
use Doctrine\ODM\PHPCR\Mapping\Annotations\Document;
use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCRODM;
use Symfony\Cmf\Bundle\SimpleCmsBundle\Doctrine\Phpcr\Page as BasePage;
/**
* {@inheritDoc}
* @PHPCRODM\Document(referenceable=true)
*/
class Product extends BasePage
{
public $node;
/**
* @var string(nullable=true)
*/
private $code;
/**
* Get Code
* @return string
*/
public function getCode()
{
return $this->code;
}
/**
* Set code
* @return Product
*/
public function setCode($code)
{
$this->code = $code;
return $this;
}
}
答案 0 :(得分:1)
这看起来几乎是正确的,但你错过了$ code的映射:
/**
* @PHPCRODM\String(nullable=true)
*/
private $code;
我认为$code
不依赖于语言。否则你需要nullable=true,translatable=true
如果您还希望映射PHPCR节点,则需要
/**
* @PHPCRODM\Node
*/
public $node;