为 Twig 自定义 'choice_label' 个 EntityType 字段
Customize 'choice_label' of EntityType Field for Twig
我有以下表格:
$form = $this->createFormBuilder()
->setMethod('POST')
->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'choices' => $users,
'expanded' => true,
'multiple' => false,
'choice_label' => function ($user) {
return $user->getUsername();
}
))
->add('selected', SubmitType::class, array('label' => 'select'))
->getForm();
return $this->render('default/showUsers.html.twig', array('form' => $form->createView()));
我有 2 个问题:
我无法自定义 'choice_label'
如:
'choice_label' => function ($user) {
return ($user->getId() + " " + $user->getUsername());
}
每个选择后(或每个单选按钮后)没有换行符,这对很多用户来说很难看。
如何自定义 'choice_label'
?
如何在每个单选按钮后获得换行符?
您可以根据需要将其自定义为字符串方法,然后删除表单生成器中的 'choice_label' 属性
//in user entity
public function __toString()
{
$string =$this->getId(). ' ' . $this->getUsername();
return $string;
}
要自定义标签,我会使用样式表。您可以使用 attr 或 choice_attr 添加 class 基于它们的值的单个无线电输入。例如
->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'choices' => $users,
'attr' => array('class' =>'type_label'),
'choice_attr' => array(
'0' => array('class' => 'class_one'),
'1' => array('class' => 'class_two'),
),
'expanded' => true,
'multiple' => false,
))
我有以下表格:
$form = $this->createFormBuilder()
->setMethod('POST')
->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'choices' => $users,
'expanded' => true,
'multiple' => false,
'choice_label' => function ($user) {
return $user->getUsername();
}
))
->add('selected', SubmitType::class, array('label' => 'select'))
->getForm();
return $this->render('default/showUsers.html.twig', array('form' => $form->createView()));
我有 2 个问题:
我无法自定义
'choice_label'
如:'choice_label' => function ($user) { return ($user->getId() + " " + $user->getUsername()); }
每个选择后(或每个单选按钮后)没有换行符,这对很多用户来说很难看。
如何自定义 'choice_label'
?
如何在每个单选按钮后获得换行符?
您可以根据需要将其自定义为字符串方法,然后删除表单生成器中的 'choice_label' 属性
//in user entity
public function __toString()
{
$string =$this->getId(). ' ' . $this->getUsername();
return $string;
}
要自定义标签,我会使用样式表。您可以使用 attr 或 choice_attr 添加 class 基于它们的值的单个无线电输入。例如
->add('users', EntityType::class, array(
'class' => 'AppBundle:User',
'choices' => $users,
'attr' => array('class' =>'type_label'),
'choice_attr' => array(
'0' => array('class' => 'class_one'),
'1' => array('class' => 'class_two'),
),
'expanded' => true,
'multiple' => false,
))