我有两个字段:年份选择和文章输入字段。当用户没有在输入字段中为文章写任何选择时,这意味着它应该在一年内显示所有文章。我通过选择多个选项来更改此输入字段,我刚添加了我的文章的名称。在此修改后,我不添加选项ALL。这是我的路线中的小代码:
旧代码:
->add('lru', 'text', array(
'data' => '',
'required' => FALSE))
新代码:
->add('lru', 'choice', array(
'choices' => array(
'\'ATSU\'' => 'ATSU',
.
.
.
),
'required' => FALSE,
'empty_value' => 'ALL',
'empty_data' => NULL,
'multiple' => TRUE
我做了一个关于' empty_value'我发现只有在expand和multiple选项都设置为false时才会应用此选项。我改变了
'multiple' => FALSE
它变得很好。 我的图书馆是:
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
这是我的form
的小代码:
$user = $app['security']->getToken()->getUser();
$default = 'ALL';
$form = $app['form.factory']->createBuilder('form')->setMethod('GET')
->add('currency', 'choice', array(
'choices' => array(
'USD' => 'Dollar',
'EUR' => 'Euro'),
))
->add('nature', 'choice', array(
'choices' => array( .....),
->add('year', 'choice', array(
'choices' => array(date('Y') => date('Y'),
date('Y') - 1 => date('Y') - 1,
date('Y') - 2 => date('Y') - 2,
date('Y') - 3 => date('Y') - 3,
date('Y') - 4 => date('Y') - 4,
'Yearly' => 'Yearly'),
'required' => TRUE,
))
->add('lru', 'choice', array(
'choices' => array(
// I want add the default value ALL here but I don't understand how
'\'ATSU\'' => 'ATSU', .... )
'required' => FALSE,
'empty_value' => 'ALL',
'empty_data' => NULL,
'multiple' => TRUE
))
请告诉我如何更改我的代码,并保留我对multiple choice
的选择。谢谢。
答案 0 :(得分:1)
只需将默认对象或数组传递给表单构建器。
看看https://symfony.com/doc/current/components/form.html#setting-default-values。
在你的情况下,它可以是这样的:
<?php
$user = $app['security']->getToken()->getUser();
$default = 'ALL';
$form = $app['form.factory']->createBuilder('form',['lru' => [$default]])->setMethod('GET')
->add('currency', 'choice', array(
'choices' => array(
'USD' => 'Dollar',
'EUR' => 'Euro'),
))
->add('nature', 'choice', array(
'choices' => array( .....),
->add('year', 'choice', array(
'choices' => array(date('Y') => date('Y'),
date('Y') - 1 => date('Y') - 1,
date('Y') - 2 => date('Y') - 2,
date('Y') - 3 => date('Y') - 3,
date('Y') - 4 => date('Y') - 4,
'Yearly' => 'Yearly'),
'required' => TRUE,
))
->add('lru', 'choice', array(
'choices' => array(
// I want add the default value ALL here but I don't understand how
$default => $default,
'\'ATSU\'' => 'ATSU', .... )
'required' => FALSE,
'empty_value' => 'ALL',
'empty_data' => NULL,
'multiple' => TRUE
))
我希望这会有所帮助。