gpt4 book ai didi

php - 集合中的 Symfony 实体

转载 作者:行者123 更新时间:2023-12-02 01:37:31 24 4
gpt4 key购买 nike

我找不到任何类似的问题,所以这里是:

我的(订单)流实体和我的产品实体之间存在多对多关系,但它没有选择 <option><select> .

所有实体都由 Symfony 自己设置,所以 @ORM\ManyToMany 等应该没问题。

我的 controller有以下行:

$form = $this->createForm(new \FDM\BestilBundle\Type\FlowsType(), $flow)->add('submit', 'submit');

$flow从数据库中正确填充。

FlowsType文件具有以下代码的许多字段:

->add('product', 'collection', [
'type' => new ProductDropdownType(),
'allow_add' => TRUE,
'allow_delete' => TRUE,
'prototype' => TRUE,
'by_reference' => FALSE,
]
)

FlowsType 中的所有字段均已正确填写,但以下一项除外。

ProductDropdownType有以下代码:

$builder->add('name', 'entity', [
'class' => 'FDMBestilBundle:Flows',
'property' => 'name',
'by_reference' => false
]);

行数是正确的 - 如果我的多对多 sql 表中有三行,它会显示三行。他们只是没有被选中。如果我更改 ProductDropdownType到:

$builder->add('name', 'text');

数据显示正常 - 所以数据库和一切正常。除非我想要 <select> 的集合...

实体中的关系如下:

在流实体中:

/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="FDM\BestilBundle\Entity\Product", inversedBy="flow")
* @ORM\JoinTable(name="productsinflows",
* joinColumns={
* @ORM\JoinColumn(name="flow", referencedColumnName="flowId")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="product", referencedColumnName="productId")
* }
* )
*/
private $product;

在产品实体中:

/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\ManyToMany(targetEntity="FDM\BestilBundle\Entity\Flows", mappedBy="product")
*/
private $flow;

谁能帮帮我 - 我卡住了!

最佳答案

您可以在表单中使用查询生成器,这是一个例子:在查询生成器中,使用 DQL 创建 SQL 查询

->add('espece', 'entity', array(
'class' => 'ADMapecheBundle:Espece',
'property' => 'nom',
'multiple' => false,
'query_builder' => function(EspeceRepository $er) use ($user) {
return $er->createQueryBuilder('p')
->where("p.user = :user")
->orderBy('p.nom', 'ASC')
->setParameter('user', $user);

希望对你有帮助,友善

关于php - 集合中的 Symfony 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30366725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com