5

次のようにフォームタイプ「sonata_type_immutable_array」を設定しようとしています:

->add('metadatos', 'sonata_type_immutable_array', array(
    'keys' => array(
                    array('Test', 'text', array('required' => false)),
                    array('URL', 'url',  array('required' => false)),
                )
            ))

そして、次のように保存します:

public function setMetadatos(\Portal\EntradasBundle\Entity\EntradaMeta $metadatos = null)
{
    $this->metadatos = $metadatos;

    return $this;
}

ただし、常にエラーが発生します。

キャッチ可能な致命的なエラー: Portal\EntradasBundle\Entity\Entrada::setMetadatos() に渡される引数 1 は、Portal\EntradasBundle\Entity\EntradaMeta のインスタンスである必要があり、配列が指定されています

これに到達するために datatransformer (ArrayToModelTransformer) を設定する方法がわかりません。

誰でも私を助けてくれます。前もって感謝します!

4

1 に答える 1

1

データ トランスフォーマーは非常に単純です。これを見てください: http://symfony.com/doc/current/cookbook/form/data_transformers.html

データ トランスフォーマーは次のように使用されます。

    /**
     * @var ObjectManager
     */
    private $om;

    /**
     * @param ObjectManager $om
     */
    public function __construct($om)
    {
        $this->om = $om;
    }

[..]
$yourTransformer = new YourDataTransformer($this->om);

And then ->addModelTransformer($yourTransformer))

オブジェクトの ID を取得したり、ID からオブジェクトを取得したりするために使用されます。

于 2012-11-14T09:04:41.597 に答える