Php Symfony2:订单字段
考虑这段代码:Php Symfony2:订单字段,php,symfony,symfony-2.5,Php,Symfony,Symfony 2.5,考虑这段代码: public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('name', 'text') ->add('description', 'textarea') ->add('status', 'choice', array('choices' => array('online' =&g
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text')
->add('description', 'textarea')
->add('status', 'choice', array('choices' => array('online' => 'online', 'offline' => 'offline')))
->add('save', 'submit');
}
但是当我呈现这个表单时,我会按顺序得到它
description
name
status
除了手工编写表单模板外,我还可以如何更改此设置。您可以使用bundle。也许有一天它会被整合进核心。目前,symfony表单组件没有任何订单选项。您可以使用bundle。也许有一天它会被整合进核心。目前,symfony表单组件没有任何顺序选项。您希望从PHP控制呈现顺序,但实际上,您的PHP不应该知道,也不应该关心信息的呈现方式。渲染顺序在模板中处理,最好是通过细枝处理,因为处理这一点是模板的责任。这是一个直截了当的过程,给了你足够的控制。以下细枝模板应该可以修复您的订单:
{{form_start(nameOfFormVariablePassedFromController}}
{{form_label(nameOfFormVariablePassedFromController.name)}}
{{form_widget(nameOfFormVariablePassedFromController.name)}}
{{form_label(nameOfFormVariablePassedFromController.description)}}
{{form_widget(nameOfFormVariablePassedFromController.description)}}
{{form_label(nameOfFormVariablePassedFromController.status)}}
{{form_widget(nameOfFormVariablePassedFromController.status)}}
{{form_widget(nameOfFormVariablePassedFromController.save)}}
{{form_end(nameOfFormVariablePassedFromController}}
通过添加额外的参数,可以很容易地向这些标签和小部件添加类以进行样式设置。如果您需要进一步澄清,我可以提供帮助。您希望从PHP控制呈现顺序,但实际上,您的PHP不应该知道,也不应该关心信息的呈现方式。渲染顺序在模板中处理,最好是通过细枝处理,因为处理这一点是模板的责任。这是一个直截了当的过程,给了你足够的控制。以下细枝模板应该可以修复您的订单:
{{form_start(nameOfFormVariablePassedFromController}}
{{form_label(nameOfFormVariablePassedFromController.name)}}
{{form_widget(nameOfFormVariablePassedFromController.name)}}
{{form_label(nameOfFormVariablePassedFromController.description)}}
{{form_widget(nameOfFormVariablePassedFromController.description)}}
{{form_label(nameOfFormVariablePassedFromController.status)}}
{{form_widget(nameOfFormVariablePassedFromController.status)}}
{{form_widget(nameOfFormVariablePassedFromController.save)}}
{{form_end(nameOfFormVariablePassedFromController}}
通过添加额外的参数,可以很容易地向这些标签和小部件添加类以进行样式设置。如果您需要进一步澄清,我可以提供帮助。今天在表单元素排序方面也有同样的问题 以一个特性结束,该特性将覆盖finishView方法并对FormView的子属性中的项重新排序: 然后在类型中实现getFieldsOrder方法:
今天的表单元素排序也有同样的问题 以一个特性结束,该特性将覆盖finishView方法并对FormView的子属性中的项重新排序: 然后在类型中实现getFieldsOrder方法:
我已经这么想了。严格说来,你是对的,但还是觉得有点奇怪。一开始似乎有点冗长,但将演示与逻辑分离是一种被广泛认可的最佳实践,可以轻松修改其中一种,而不会影响另一种,因此你最好接受它。我已经这样认为了。严格说来,你是对的,但还是觉得有点奇怪。一开始似乎有点冗长,但将演示与逻辑分离是一种广受认可的最佳实践,可以轻松修改其中一种,而不会影响另一种,因此你最好接受它。
use OrderedTrait;
function getFieldsOrder()
{
return [
'first',
'second',
'next',
'etc.',
];
}