我必须从Api呼叫中填充选择列表。我尝试了几种方法但没有成功。
我认为最好的方法是实现ChoiceListInterface。
有人已经做过吗?
谢谢
最佳答案
扩展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(),
//....
));
关于php - Symfony2从api数据填充选择列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13313415/