【问题标题】:symfony collection - add one item at oncesymfony 集合 - 一次添加一项
【发布时间】:2016-11-16 05:21:34
【问题描述】:

我有一个具有 oneToMany 关系的集合。现在,不是根据官方 cookbook 使用整个原型和 javascript 实现,我希望能够一次只将一项添加到集合中。理想情况下,使用 e customType 而不是 CollectionType 但 Symfony 似乎不允许这样做。此外,我想避免在 Controller 中乱搞。

有没有人有一个好主意来实现这个?

【问题讨论】:

  • 对cookbook做同样的事情,但修改js代码以删除插入后的添加按钮。这对你有意义吗?

标签: php symfony collections doctrine


【解决方案1】:

如果我知道您想一次添加一个项目并避免使用 JavaScript,那么为什么不使用诸如具有处理相关对象的单个实例的表单的函数之类的东西。

例如,当您执行添加/创建功能时,创建一个新对象并设置对象的相关值并将其传递给表单。

示例; Foo 类是一个,Bar 类是很多

$bar = new Bar();
$bar->setFoo(1);

$form = $this->createFormBuilder($bar)
            ->add('whatever', TextType::class)
            -->add('save', SubmitType::class, array('label' => 'Create Bar for Foo'))
            ->getForm();

表单成功后,重定向回你想要的地方;另一个添加表单或您的父类列表。 这实际上只不过是Symfony handles forms 的基本示例,您只是在创建一个新对象,预先设置了一些值。

【讨论】:

  • 感谢您的建议。是的,这可能是解决方案。我希望有一种无需预先设置数据的方法。因此没有$bar->setFoo(1); 我想这是不可能的
猜你喜欢
  • 1970-01-01
  • 2019-02-15
  • 2013-07-12
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 1970-01-01
相关资源
最近更新 更多