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中连接它。
我能在这里做什么?
在此先感谢。