我正在學習使用symfony,並且所有看起來都非常棒,但我需要製作一些自定義表單,而且我不知道如何與我的情況進行交接。Symfony表單字段操作
有沒有辦法像Magento一樣基於xml定義文件構建動態表單?我想要實現的是構建表單,這些表單將在數據庫中具有鍵值存儲,具有在構建表單時決定的自定義自定義輸入類型,但作爲用戶/管理員的演示文稿,我想要在區域 - >部分上進行構建。
有沒有可能做到這一點?
謝謝。
我正在學習使用symfony,並且所有看起來都非常棒,但我需要製作一些自定義表單,而且我不知道如何與我的情況進行交接。Symfony表單字段操作
有沒有辦法像Magento一樣基於xml定義文件構建動態表單?我想要實現的是構建表單,這些表單將在數據庫中具有鍵值存儲,具有在構建表單時決定的自定義自定義輸入類型,但作爲用戶/管理員的演示文稿,我想要在區域 - >部分上進行構建。
有沒有可能做到這一點?
謝謝。
不幸的是,Form Component不提供此功能。 但是,您可以自己實施它或使用第三方軟件包。
FormBuilderInterface
是一個很好的說明性API爲form generation。 您可以定義自己的配置格式並使用它來構建表單。
例如:
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use DOMDocument;
class XmlBasedFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
// Better if the format will be as similar to the FormBuilder options:
$formConfig = DOMDocument::loadXML(<<<'XML'
<form>
<field name="foo" type="text" label="Foo"/>
<field name="bar" type="textarea" label="Bar"/>
<field name="baz" type="checkbox" label="Baz"/>
</form>
XML
);
foreach ($formConfig->getElementsByTagName('field') as $fieldElement) {
$name = $fieldElement->getAttribute('name');
$type = $fieldElement->getAttribute('type');
$label = $fieldElement->getAttribute('label');
// Build a form element:
$builder->add($name, $type, ['label' => $label]);
}
}
}
而且,Config Component可以是在這種情況下是有用的。
但是全部實現所有表單功能可能需要很多工作。 Сonsider使用第三方解決方案,如Dynamic Form Bundle。該包通過YAML配置文件生成Symfony表單。 (我對此解決方案有一定的經驗,並且效果很好。)
您可以使用symfony構建所有需要的東西,但不存在內置解決方案。 PS:請閱讀StackOverflow的指導,例如:[我可以在StackOverflow上詢問哪些主題?](http://stackoverflow.com/help/on-topic)和[我如何提出一個好問題?](http:/ /stackoverflow.com/help/how-to-ask)。 –