Как расширить класс Page из простого набора CMS Symfony?

Я пытаюсь расширить класс Page по умолчанию из простого набора symfony.

Эта проблема:
Настраиваемое свойство не сохраняется.

Ниже приведен код класса, который расширяется от 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;
    } 
}   

1 ответ

Решение

Это выглядит почти правильно, но вы пропустите отображение в $code:

/**
 * @PHPCRODM\String(nullable=true)
 */
private $code;

Я предполагаю что $code не зависит от языка. В противном случае вам нужно nullable=true,translatable=true

Если вы также хотите отобразить узел PHPCR, вам нужно

/**
 * @PHPCRODM\Node
 */
public $node;
Другие вопросы по тегам