0
我有一個問題sonata_type_model_list和繼承實體。奏鳴曲sonata_type_model_list和繼承實體
我有這些實體
/**
* @ORM\Entity()
*/
class Contract
{
/**
* @var Provider
*
* @ORM\ManyToOne(targetEntity="Provider")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="provider_id", referencedColumnName="id")
* })
*/
private $provider;
...
}
和
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
/**
* User
*
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="user_type", type="string")
* @ORM\DiscriminatorMap(
* {
* "app_user" = "User",
* "provider" = "AppBundle\Entity\Provider",
* }
*)
* @ORM\Table(name="fos_user_user", options={"charset"="utf8", "collate"="utf8_bin"})
*/
class User extends BaseUser
{
,並提供實體
namespace AppBundle\Entity;
use Application\Sonata\UserBundle\Entity\User;
/**
* @ORM\Entity()
*/
class Provider extends User
{
我做ContractAdmin
admin.contract:
class: AppBundle\Admin\ContractAdmin
arguments: [~, AppBundle\Entity\Contract, ~]
tags:
- { name: sonata.admin, manager_type: orm, label: label.contracts, group: label.contracts }
calls:
- [setTranslationDomain, [SonataAdminBundle]]
和
use Sonata\AdminBundle\Admin\AbstractAdmin;
class ContractAdmin extends AbstractAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add(
'provider',
'sonata_type_model_list',
[
'class' => 'AppBundle\Entity\Provider',
],
,當我試圖添加一個供應商,我得到一個錯誤
拋出了一個異常,同時處理:不可能在一個空調用一個方法 (「ID」) 「:形式:SonataDoctrineORMAdminBundle form_admin_fields.html.twig」在 變量在 線59
我要搜索和添加唯一供應商用戶轉到合同實體。 Sonata找不到提供者或用戶實體(NULL),我無法弄清楚如何在ContractAdmin中連接它。
我能在這裏做什麼?
在此先感謝。