forms - 如何在 Symfony2 表单中使用现有实体?

标签 forms symfony nested-forms symfony-forms tagging

我有这两个实体:

class Article
{
    /** @var ArrayCollection
    protected $tags;
}

class Tag
{
    protected $id;
    protected $name;
}

基本上我读过http://symfony.com/doc/master/cookbook/form/form_collections.html但这并不能解释我的情况。

让我解释一下。

我在数据库中已有标签,因此我希望能够将多个标签关联到我的文章,我不想允许创建不存在的标签。

由于我的目标是在 REST api 和 Web 表单中使用我的表单,因此我希望我的客户端能够仅使用 id 来引用标签(这将之前已经获取过)。

有什么想法吗?

最佳答案

您可以使用entity field typ e.实际上,它是一种选择字段类型,您可以将其呈现为具有多项选择的选择复选框列表。然而,如果你有很多标签,就会有太多的选择,用户会不高兴。

因此,我建议实现一个类似 Stackoverflow 的标记系统。

我在一个项目中使用 Javascript tokeninput 库做到了这一点,就像 loopj 那样。 。 在实践中:

  1. 您应该首先呈现一个名为 tags 的文本字段。

  2. 然后您应该使用用于标记处理的 Javascript 库来处理该输入字段的标记插入。

  3. Controller 将收到一个标记化字符串,您必须处理该字符串才能从 Doctrine 检索 Tag 实体。

  4. 最后,检索 Tag 实体列表,将它们分配给您的 Article 实体并刷新所有内容。

关于forms - 如何在 Symfony2 表单中使用现有实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13528606/

相关文章:

javascript - 如果存在错误,使用 PHP + 验证表单不会刷新

ruby-on-rails - nested_form 显示部分两次

ruby-on-rails - Rails - 如何避免在 View 中使用 hidden_​​fields 将值传递给 Controller ​​?

jquery - 表单提交后如何运行Jquery代码

javascript - 简单表单提交不调用 javascript 函数(JQuery)

javascript - 使用箭头键导航表单字段

symfony - symfony2 中的双重翻译

php - Symfony2 - 没有实体的奏鸣曲数据网格

php - 在事先不知道确切步数的情况下使用 Symfony 进度条

html - HTML在构造参数时遵循什么规则?