【问题标题】:How to add fields that not defined in Entity?如何添加实体中未定义的字段?
【发布时间】:2011-08-10 11:48:49
【问题描述】:

我想在我的表单中添加相同的附加字段,但我不希望在数据对象中有这些字段。 这是一个例子:

    $formBuilder = $this->get('form.factory')->createBuilder(new LeadType(), new LeadInfo());

    $formBuilder->add('newsSubscribe', 'checkbox');
    $form = $formBuilder->getForm();

但我得到一个错误,因为我的对象上没有“newsSubscribe”字段,我不想添加(因为订阅与 LeadInfo 无关)

有办法解决吗?

【问题讨论】:

    标签: forms symfony dto


    【解决方案1】:

    field type(大多数表单字段默认继承)提供了一个property_path 选项,用于指示该字段表示的域对象上的哪个属性。您可以告诉您的复选框不要像这样写入域对象:

    $formBuilder->add('newsSubscribe', 'checkbox', array(
        'property_path' => false,
    ));
    

    您可能还必须为您的复选框定义其他选项,因为您传递的数组可能会覆盖默认选项,但这会让您开始。使用此代码,newsSubscribe 将在您的 POST 变量中可用,但 Symfony 不会尝试将其写入域对象属性。

    【讨论】:

      猜你喜欢
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-27
      相关资源
      最近更新 更多