Symfony2默认选择单选按钮
问题描述:
我知道在这个主题的网络中的各种论坛上已经有不少文章。 然而,非解决方案实际上为我工作,虽然这个问题似乎很简单。Symfony2默认选择单选按钮
我要预先选择一个单选按钮即时通讯我的Symfony2形式:
我的实体:
namespace Helloworld\CoreBundle\Entity;
class User {
...
/**
* @var string
*
* @ORM\Column(name="gender", type="string", length=6)
* @Assert\Choice(choices = {"male","female"}, multiple = false, message = "You must choose a valid gender.")
*/
protected gender;
...
}
(getter和setter都存在)
我的PHP代码:
$user = new User();
$user->setGender('male');
$form = $this->createFormBuilder($user)
->add('gender', 'choice', array(
'choices' => array(
'male' => 'Male',
'female' => 'Female'
),
'multiple' => false,
'expanded' => true,
'required' => true,
))
->getForm();
现在,不幸的是,默认情况下没有单选按钮被选中!
任何人都可以帮忙吗? 请问?
答
我认为你需要坚持(和/或冲洗?)创建表单之前你的实体,因此实体有一个ID等 (这是预先选择者均基于单选按钮,一个可怕的方式)
答
我认为单选按钮的值为'male
'将会被选中,因为你的实体已经有'男'作为性别。这是symfony2
框架的预期行为。
如果您不希望单选按钮没有被默认选中,只需在将实体传递给表单构建器之前将其设置为实体。
$user = new User();
$user->setGender('male'); //<- remove this line
$form = $this->createFormBuilder($user)
->add('gender', 'choice', array(
'choices' => array(
'male' => 'Male',
'female' => 'Female'
),
'multiple' => false,
'expanded' => true,
'required' => true,
))
->getForm();
答
,如果你想在形式上与预选按钮请尽量使用“数据”属性与所需的键从选择阵列,如:
->add('gender', 'choice', array(
'choices' => array(
'male' => 'Male',
'female' => 'Female'
),
'multiple' => false,
'expanded' => true,
'required' => true,
'data' => 'male'
))
我使用例如男性“数据” =>“1 ',正上方'选择'。这是你想要的吗?或者询问id并将其设置为'data'= $ id。 – craphunter 2013-03-13 14:47:30
在“选择”之前,你是否错过了开场白? – Mike 2015-07-07 19:03:16