Symfony表单和实体构造函数

时间:2014-10-17 07:02:00

标签: php symfony symfony-forms

我想从Symfony表单创建实体(Doctrine)。

但我只能按如下方式创建一个条目:

$country = new Country($iso2Code = 'US');
$country->setIso3Code('USA');
$country->setName('United States of America');

按以下方式设置属性,我不能:

$country = new Country();
$country->setIso2Code('US');
$country->setIso3Code('USA');
$country->setName('United States of America');

此课程的链接:https://github.com/orocrm/platform/blob/master/src/Oro/Bundle/AddressBundle/Entity/Country.php

我无法更改此类的源代码(当然我可以,但这是不好的做法 - 更改第三方代码)。

我不想扩展这个类,因为它会产生很多其他问题(在这种情况下我不能使用依赖于这个类的元素)。

和!!!通过构造函数设置值 - 不错!

但我如何为这个实体创建Symfony 2表单?

1 个答案:

答案 0 :(得分:0)

如果源代码不符合您的需求,只需更改它并在github上创建存储库的分支:https://github.com/orocrm/platform/fork

然后:

     public function __construct()
     {
         $this->regions  = new ArrayCollection();
     }

     /**
      * Get iso2_code
      *
      * @return string
      */
     public function getIso2Code()
     {
         return $this->iso2Code;
     }

     public function setIso2Code($iso2Code)
     {
         $this->iso2Code = $iso2Code;

         return $this;
     }