【问题标题】:Modifying label for symfony generated form修改 symfony 生成表单的标签
【发布时间】:2017-05-09 16:45:39
【问题描述】:

我目前在 Symfony 中有一个工作表格,其中有一个公司列表,每个公司名称旁边都有复选框。这样您就可以检查分配给每个用户的公司。该复选框当前显示帐户 ID,但实体字段“名称”也将很有帮助。你能用两个实体字段构建一个属性吗?这是我在控制器中的表单:

 ->add('companies', 'entity', array(
            'label'         => 'Company',
            'class'         => 'Default\Bundle\Entity\Customer',
            'property' =>   'accountId', //This puts the company id next to the check box
            'multiple'      => true,
            'expanded'      => true,
            'query_builder' => function ($repository)
                {
                    return $repository->createQueryBuilder('c')->orderBy('c.accountId', 'ASC');
                },))
        ->add('Save', 'submit')
        ->getForm();

这就是我想要做的:

 ->add('companies', 'entity', array(
       'label'         => 'Company',
       'class'         => 'Default\Bundle\Entity\Customer',
       'property' =>   'accountId' + 'name', // I want to combine my entity fields here
       'multiple'      => true,
       'expanded'      => true,
       'query_builder' => function ($repository)

这里的实体仅供参考

class Customer
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @Assert\NotBlank(message="Please enter a Customer ID.")
     * @Assert\Length(max="32")
     * @ORM\Column(type="string", length=32)
     * @var string
     */
    protected $accountId;

    /**
     * @Assert\NotBlank(message="Please enter a company name.")
     * @Assert\Length(max="60")
     * @ORM\Column(type="string", length=60)
     * @var string
     */
    protected $name;

最后一次......我想从这里开始:

到这里:

【问题讨论】:

    标签: php forms symfony


    【解决方案1】:

    创建一个简单的 getter 并将其用作属性,例如:

    public function getNamePlusAccountId()
    {
        return $this->name." (".$this->accountId.")";
    }
    

    并在您的表单中使用'property' => 'namePlusAccountId'

    【讨论】:

    • 太棒了!不知道我可以在构建表单时引用函数。我认为它必须是类的变量。
    【解决方案2】:

    如果您只需要更改标签但想保留表单字段值,那么http://symfony.com/doc/current/reference/forms/types/entity.html#choice-label 可能您在寻找什么

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 2018-02-22
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多