Symfony2 FPNTagBundle

时间:2015-10-26 17:09:04

标签: php symfony

我在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;
    }

你们知道如何在输入字段中加载标签吗?

由于

1 个答案:

答案 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(",")} }  ) }}

任何想法?