2016-01-02 46 views
0

我要訪問我的 '技術員' 實體如何嵌入孫子對象sonata_type_admin

層次的孫子:

實體用戶 - > PersonalDetails

實體技術員 - >用戶

嘗試時

/** AdminBundle/Admin/TechnicianAdmin.php */ 

$formMapper 
    ->add('user.personalDetails','sonata_type_admin',[ 
     'delete'=>false 
    ]); 

我得到這個錯誤

無論屬性 「personalDetailsuser」,也不是方法之一 「getPersonalDetailsuser()」, 「personalDetailsuser()」, 「isPersonalDetailsuser()」, 「hasPersonalDetailsuser()」,「 __get()「存在並且在」AppBundle \ Entity \ Technician「類中具有公共訪問權限。

但是在嘗試此:

/** AdminBundle/Admin/UserAdmin.php */ 

$formMapper 
    ->add('personalDetails','sonata_type_admin',[ 
     'delete'=>false 
    ]); 

萬物工程100%,符合市場預期。我可以在我的UserAdmin類中嵌入PersonalDetails作爲sonata_type_admin,但不能在我的TechnicianAdmin類[其中包含User對象]中嵌入。我如何將PersonalDetails嵌入到我的TechnicianAdmin類中?我希望我清楚,請讓我知道任何混淆。

回答

0

您可以嘗試向實體Technician添加吸氣器和設置器。

/** AppBundle/Entity/Technician.php */ 

// getter 
getPersonalDetails() { 
    return $this->getUser()->getPersonalDetails(); 
} 

// setter 
setPersonalDetails(PersonalDetails $personalDetails) { 
    $this->getUser()->setPersonalDetails($personalDetails); 
} 

和限定在TechnicianAdmin領域:

/** AdminBundle/Admin/TechnicianAdmin.php */ 

$formMapper 
    ->add('personalDetails','sonata_type_admin',[ 
     'delete'=>false 
]);