【发布时间】:2016-11-17 05:03:52
【问题描述】:
我有一个名为 Ad 的实体类,它包含如下字段
id, banner, interstitial
问题是当我尝试使用此实体“横幅”文本字段创建表单时,未显示(未呈现),仅显示标签。
我注意到该字段的 id 是 ad_banner 如果我在浏览器检查元素中更改 id,它将显示...
symfony 中的 ad_banner 是什么,为什么要隐藏它?
我不想更改字段的名称,也不想更改 twig 中的 id,因为我想像这样保持简单:
<div class="row">
<div class="col-md-6">
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
</div>
</div>
我尝试从表单生成器更改字段的 ID,但没有成功。谢谢!
广告类
/**
* @var string
*
* @ORM\Column(name="banner", type="string", length=255, nullable=true)
*/
private $banner;
AdType 表单
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('account', EntityType::class, [
'class' => 'AppBundle:Account',
'choice_label' => 'name',
'attr' => ['data-select' => 'true']
])
->add('banner', TextType::class, [
'attr' => [
'placeholder' => 'Banner Id...'
]
])
->add('interstitial', TextType::class, [
'attr' => [
'placeholder' => 'Interstitial Id...'
]
])
->add('submit', SubmitType::class, [
'label' => 'Create',
'attr' => [
'class' => 'btn btn-primary btn-sm'
]
])
;
}
生成的 Html
<div class="form-group">
<label class="control-label required" for="ad_banner">Banner</label>
<input type="text" id="ad_banner" name="ad[banner]" required="required" placeholder="Banner Id..." class="form-control">
</div>
我把样式拿出来是因为我在想可能是一些 js 隐藏了它。
【问题讨论】:
-
看起来您尝试在实体中不存在的表单字段中呈现。可以为 Form 类属性添加选项 'mapped' => false?
-
它存在于实体中...并添加到 DOM 但不显示...等等我要更新图片
-
在这种情况下,此问题来自 YieldManager,与 Symfony 无关
-
这个 YieldManager 是什么?我怎样才能摆脱它?
-
Ad.yieldmanager.com
标签: php symfony-forms symfony