奏鸣曲管理员表单字段在同一行
Sonata admin form field on same line
admin 的 configureformsfields 方法中有没有办法在同一行显示字段而不是一个在另一个下面?例如CSSclass?
您可以将 CSS class 和适当的显示选项添加到所选字段,如:
->add('fieldname', null, [
'attr' => ["class" => "your-custom-class"]
])
您还可以修改 .form-group
class(使所有字段内联):
.form-group {
display: inline-block;
}
如果您希望输入与其标签一致:
div.sonata-ba-field.sonata-ba-field-standard-natural {
display: inline-block;
}
可以找到有关如何创建 CSS 文件并将其加载到 Sonata 模板的教程 。
有一些解决方法:
- 创建自定义表单类型以向表单字段添加新选项
class CustomTextType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
$view->vars['parent_div_class'] = $options['parent_div_class'];
}
/**
* {@inheritdoc}
*/
public function getParent()
{
return TextType::class;
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'custom_text_type';
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
[
'parent_div_class' => null,
]
);
}
- 创建扩展奏鸣曲的自定义表格主题
{% extends '@SonataDoctrineORMAdmin/Form/form_admin_fields.html.twig' %}
{% block form_row %}
{% if parent_div_class is defined and parent_div_class %}
<div class="{{ parent_div_class }}">
{{ parent() }}
</div>
{% else %}
{{ parent() }}
{% endif %}
{% endblock %}
在你的后台设置这个主题class
$this->setFormTheme(['@Admin/form/form_theme.html.twig']);
享受。
SonataCoreBundle
为此提供了form_type
选项。
# app/config/config.yml
sonata_core:
form_type: horizontal
在 symfony 4 中,您可以在 config/packages/sonata_admin.yaml
中全局配置它
sonata_admin:
options:
form_type: 'horizontal'
给出:
admin 的 configureformsfields 方法中有没有办法在同一行显示字段而不是一个在另一个下面?例如CSSclass?
您可以将 CSS class 和适当的显示选项添加到所选字段,如:
->add('fieldname', null, [
'attr' => ["class" => "your-custom-class"]
])
您还可以修改 .form-group
class(使所有字段内联):
.form-group {
display: inline-block;
}
如果您希望输入与其标签一致:
div.sonata-ba-field.sonata-ba-field-standard-natural {
display: inline-block;
}
可以找到有关如何创建 CSS 文件并将其加载到 Sonata 模板的教程
有一些解决方法: - 创建自定义表单类型以向表单字段添加新选项
class CustomTextType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
$view->vars['parent_div_class'] = $options['parent_div_class'];
}
/**
* {@inheritdoc}
*/
public function getParent()
{
return TextType::class;
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'custom_text_type';
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
[
'parent_div_class' => null,
]
);
}
- 创建扩展奏鸣曲的自定义表格主题
{% extends '@SonataDoctrineORMAdmin/Form/form_admin_fields.html.twig' %}
{% block form_row %}
{% if parent_div_class is defined and parent_div_class %}
<div class="{{ parent_div_class }}"> {{ parent() }} </div>
{% else %} {{ parent() }} {% endif %} {% endblock %}
在你的后台设置这个主题class
$this->setFormTheme(['@Admin/form/form_theme.html.twig']);
享受。
SonataCoreBundle
为此提供了form_type
选项。
# app/config/config.yml
sonata_core:
form_type: horizontal
在 symfony 4 中,您可以在 config/packages/sonata_admin.yaml
sonata_admin:
options:
form_type: 'horizontal'
给出: