簡體   English   中英

訪問Symfony2中的相關實體

[英]Accessing Related Entities in Symfony2

我有一個View實體,該實體引用了一個稱為ViewVersion的關聯實體。 但是,如果我將變量命名為viewVersion以外的其他viewVersion (例如,簡單version ,則會收到錯誤消息:

Neither the property "viewVersion" nor one of the methods "getViewVersion()", "isViewVersion()", "hasViewVersion()", "__get()" exist and have public access in class "Gutensite\CmsBundle\Entity\View\View".

所有的getter和setter都是通過php app/console doctrine:generate:entities但它們用於getVersion()而不是getViewVersion()

問題:那么,是否存在一些潛規則,即必須將關聯實體的名稱與其類名稱相同?

實體定義

/**
* @ORM\Entity
* @ORM\Table(name="view")
* @ORM\Entity(repositoryClass="Gutensite\CmsBundle\Entity\View\ViewRepository")
*/
class View extends Entity\Base {

    /**
    * @ORM\OneToOne(targetEntity="\Gutensite\CmsBundle\Entity\View\ViewVersion", inversedBy="view", cascade={"persist", "remove"}, orphanRemoval=true)
    * @ORM\JoinColumn(name="versionId", referencedColumnName="id")
    */
    protected $version;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    protected $versionId = NULL;
}

僅供參考,關聯實體的變量可以是您想要的任何變量。

這是由仍引用“ viewVersion”的預定義formType引起的。 $ builder-> add()形式的第一個變量是對實體中特定變量的引用。 我在那里仍然列出了viewVersion ,當我審核代碼時,我認為它只是一個通用引用(沒有任何要求)或可能是對Entity類的引用,所以我沒有更改它:

$builder->add('viewVersion', new ViewVersionType(), array(
    'label' => false
));

解決此問題的方法是將viewVersion更改為version以便它引用實體上的實際變量。 明顯...

$builder->add('version', new ViewVersionType(), array(
    'label' => false
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM