1

選択タイプを親として使用する Symfony でカスタム フォーム タイプを設定する必要がありますが、実際には選択をプリロードする必要はありません。This value is not valid.のように、おそらくプリロードされたオプションの1つではないため、エラーが発生することなく、選択にajax呼び出しを入力してから、呼び出しからのオプションの1つを送信できるようにしたいと考えています。

バンドルコントローラーを介してそれを行っているため、カスタムデータトランスフォーマーは必要ありません.Symfonyが最初にリストになかったオプションを送信したときに文句を言わないようにする必要があります. これまでのカスタム フォーム タイプは次のようになります。

<?php

namespace ISFP\Index\IndexBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class NullEntityType extends AbstractType
{
    public function getDefaultOptions(array $options)
    {
        $defaultOptions = array(
            'em'                => null,
            'class'             => null,
            'property'          => null,
        );

        $options = array_replace($defaultOptions, $options);

        return $options;
    }

    public function getParent()
    {
        return 'choice';
    }

    public function getName()
    {
        return 'null_entity';
    }
}
4

1 に答える 1

0

ほらEntityType、親が としてあるのを見てくださいchoice。しかし、表示全体は によって処理されましたChoiceType。私が似たようなことをしていたとき、私はオーバーロードから始めました 両方ChoiceTypeEntityType. 次に、オーバーロードされたエンティティを設定して、オーバーロードされたgetParent()選択肢をマイニングします。

最後に、私の場合、新しいフォームを変更して、choiceそこに埋め込みフォームを配置します。それをするのは難しいです。そして、それは多くの時間を消費します。

しかし、そのアプローチでは、検証に問題はありません。

于 2013-02-14T10:10:20.870 に答える