簡體   English   中英

自定義Twig的EntityType字段的“ choice_label”

[英]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()));

我有兩個問題:

  1. 我無法自定義'choice_label'例如:

     'choice_label' => function ($user) { return ($user->getId() + " " + $user->getUsername()); } 
  2. 每次選擇后(或每個單選按鈕之后)都沒有換行符,這對很多用戶來說都很難看。

如何自定義'choice_label'

每個單選按鈕后如何獲得換行符?

您可以根據需要將其自定義為字符串方法,然后在表單構建器中刪除“ choice_label”屬性

//in user entity
public function __toString()
{
    $string =$this->getId(). ' ' . $this->getUsername();
    return $string;
}

為了自定義標簽,我將使用樣式表。 您可以基於單個無線電輸入的值,使用attr或choice_attr添加一個類。例如

->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,
))

有關更多信息,請參見symfony參考。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM