我在Symfony2中实现了 FPNTagBundle 。 我现在可以将标签与实体关联起来。当我将表格中的内容添加到表格中时,它的效果非常好。标签在数据库中创建。
但我没有得到如何使用我的编辑表单加载它们。 我在FormType中为标签创建了一个新的输入字段,但这个字段当然是空的。
这是我的编辑方法,我想加载已经与名为活动的实体关联的标记。
public function editAction(Activity $activity)
{
$editForm = $this->createEditForm($activity);
$deleteForm = $this->createDeleteForm($activity->getId());
$tagManager = $this->get('fpn_tag.tag_manager');
$tagManager->loadTagging($activity);
return $this->render('ComiteoASCBundle:Activity/Activity:edit.html.twig', [
'activity' => $activity,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),
]);
}
createEditForm 方法:
private function createEditForm(Activity $activity)
{
$allowEditCategory = ($activity->getProducts()->count() === 0) ? true : false;
$form = $this->createForm(new ActivityType($allowEditCategory), $activity, array(
'action' => $this->generateUrl('activity_activity_update', array('activity' => $activity->getId())),
'method' => 'PUT',
));
$form->add('submit', 'submit'));
return $form;
}
你们知道如何在输入字段中加载标签吗?
由于
答案 0 :(得分:0)
找到它。它实际上非常简单:
你只需要使用for循环迭代twig。
{% set tags = '' %}
{% for tag in activity.tags %}
{% set tags = tags ~ tag ~ ', ' %}
{% endfor %}
{{ form_row(edit_form.tags , {'attr': {'value': tags} } ) }}
当然,不要忘记在以下情况下在控制器中加载标签:
$tagManager = $this->get('fpn_tag.tag_manager');
$tagManager->loadTagging($activity);
我现在正尝试使用 trim 删除我的树枝模板中的最后一个逗号,但它似乎不起作用!
{{ form_row(edit_form.tags , {'attr': {'value': tags|trim(",")} } ) }}
任何想法?