Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如果一个值为空,则具有Doctrie方法fromArray的JMS序列化程序不会创建子实体_Symfony_Doctrine Orm_Jmsserializerbundle_Jms Serializer - Fatal编程技术网

Symfony 如果一个值为空,则具有Doctrie方法fromArray的JMS序列化程序不会创建子实体

Symfony 如果一个值为空,则具有Doctrie方法fromArray的JMS序列化程序不会创建子实体,symfony,doctrine-orm,jmsserializerbundle,jms-serializer,Symfony,Doctrine Orm,Jmsserializerbundle,Jms Serializer,我使用Symfony 3.2和jms/序列化程序包,我的代码有一些问题,例如: $data = [ 'orgg.egrpo' => '', 'orgg.name' => 'organization name', ]; $serializer = $this->get('jms_serializer'); $transportation = $serializer->fromArray($data, Tran::class);

我使用Symfony 3.2和jms/序列化程序包,我的代码有一些问题,例如:

   $data = [
        'orgg.egrpo' => '',
        'orgg.name' => 'organization name',
    ];

$serializer = $this->get('jms_serializer');
$transportation = $serializer->fromArray($data, Tran::class);
结果在这种情况下,我无法保存我的实体:

print_r($transportation);
AppBundle\Entity\Tran Object ( [id:protected] => [orgg:protected] => )    
但如果我改变了egrpo的非空值

 $data = [
            'orgg.egrpo' => 'test egrpo',
            'orgg.name' => 'organization name',
        ];
结果正常并创建了我的实体:

AppBundle\Entity\Tran Object ( [id:protected] => [discount:protected] => [orgg:protected] => AppBundle\Entity\Orgg Object ( [id:protected] => 12 [name:protected] => organization name [egrpo:protected] => test egrpo ) )
如何使用空egrpo创建实体组织

  $data = [
            'orgg.egrpo' => '',
            'orgg.name' => 'organization name',
        ];
我的实体

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(readOnly = true, repositoryClass = "AppBundle\Repository\TransportationRepository")
 * @ORM\Table("tran")
 *
 */
class Tran
{
    /**
     * @var integer
     *
     * @ORM\Id
     * @ORM\Column(type = "bigint")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;


    /**
     * @var Orgg
     *
     * @ORM\ManyToOne(targetEntity = "Orgg", cascade = {"persist"})
     */
    protected $orgg;


    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return Orgg
     */
    public function getOrgg()
    {
        return $this->orgg;
    }

    /**
     * @param Orgg $orgg
     * @return Transportation
     */
    public function setOrgg (Orgg $orgg)
    {
        $this->orgg = $orgg;
        return $this;
    }



}
好了,我尝试了其他任何带有替换排除策略的变体,但我无法解决我的问题:

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use JMS\Serializer\Annotation as Serializer;

/**
 * @ORM\Entity(repositoryClass = "AppBundle\Repository\CountryRepository"
 * @JMS\ExclusionPolicy("all")
 * @ORM\Table("Orgg")
 */
class Orgg
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(type = "string", length = 30, unique = true, options = {"comment": "Наименование государства"})
     *
     * @Serializer\Groups({"Default", "Import"})
     */
    protected $name;

    /**
     * @var string
     *
     * @ORM\Column(type = "string", nullable = true, options = {"comment": "Наименование организации по ЕГРПО"})
     */
    protected $egrpo;

    /**
     * @return string
     */
    public function getEgrpo()
    {
        return $this->egrpo;
    }

    /**
     * @param string $egrpo
     * @return Organization
     */
    public function setEgrpo($egrpo)
    {
        $this->egrpo = $egrpo;
        return $this;
    }

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param string $name
     * @return Country
     */
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }


    function __toString()
    {
        return $this->name;
    }
你说“我不能我的实体不保存”是什么意思?你说“我不能我的实体不保存”是什么意思?