2

Api呼び出しから選択リストを作成する必要があります。私は成功せずにいくつかのアプローチを試みました。

最善の方法は、ChoiceListInterfaceを実装することだと思います。

誰かがすでにそれをしましたか?

ありがとう

4

1 に答える 1

13

LazyChoiceListを拡張し、 loadChoiceListメソッドを実装します。

//ApiChoiceList.php
namespace Your\Namespace;
use Symfony\Component\Form\Extension\Core\ChoiceList\LazyChoiceList;
use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceList;

class ApiChoiceList extends LazyChoiceList 
{
    protected function loadChoiceList()
    {
        //fetch and process api data

        return new ChoiceList($choices, $labels);

    }
}

そして、buildFormあなたのフォームのあなたの方法で、

$builder->add('fieldname', 'choice', array(
    'choice_list' => new Your\Namespace\ApiChoiceList(),
    //....
));
于 2012-11-10T08:19:13.063 に答える