Php 一对一或多对一原则关系2
我有以下情况 我有一个Php 一对一或多对一原则关系2,php,mysql,doctrine-orm,mapping,relationships,Php,Mysql,Doctrine Orm,Mapping,Relationships,我有以下情况 我有一个客户表和服务表 案例1 我想知道的是如何在Symfony2中制作一个提交表单(实际上,我认为如果你能在YML映射中指导我就足够了),它可以CRUD一个客户实体,它可以为它分配X服务 clients表只有id和nombre列,与服务相同 案例2 然后,完成后,我有一个名为task的新表。这个新表需要具有以下内容: 任务的客户端。 任务的服务,同时需要分配给该客户机,因此它依赖于客户机选择框(我可以用jQuery实现) 还有一些一对一的关系,实际上运作得很好 如果任务有多个客户
客户
表和服务
表
案例1
我想知道的是如何在Symfony2中制作一个提交表单(实际上,我认为如果你能在YML映射中指导我就足够了),它可以CRUD一个客户
实体,它可以为它分配X服务
clients
表只有id
和nombre
列,与服务
相同
案例2
然后,完成后,我有一个名为task
的新表。这个新表需要具有以下内容:
任务的客户端。
任务的服务,同时需要分配给该客户机,因此它依赖于客户机选择框(我可以用jQuery实现)
还有一些一对一的关系,实际上运作得很好
如果任务有多个客户端,如果我可以使用prototype
和forms collection或其他新的客户端在同一个表单上添加,当然,如果需要,还可以添加新的服务,那就太好了。。。但这完全是可选的,我真正失去的是案例1,因为我认为如果有人能帮助我解决案例1,那么案例2将很容易由我自己完成
当然,我不知道该用什么,在这两种情况下,一个是一个还是多个…我强烈建议: 但长话短说,如果您想要双向关系,这里是您的YAML for
case1
:
Client: // dont forget namespace
type: entity
table: client
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
number:
type: integer
oneToMany: // each client has many services
services: // the variable to store services of client
targetEntity: Service
mappedBy: client // the variable to store client of a service
Service:
... //same as above
manyToOne:
client:
targetEntity: Client
inversedBy: services
我没有正确理解案例2。当我这样做时,一旦我使用
原则:generate:entities
生成实体,它将返回此错误[Symfony\Component\Debug\Exception\ContextErrorException]注意:未定义索引:mappedBy位于/var/www/pge/dev.pge/vendor/doctrine/orm/lib/doctrine/orm/Mapping/Driver/YamlDriver.php第367行
好的,它可以工作。但假设我有6项服务,但我想如果在提交表单上选择了client1
,那么services
列表只显示了这6项记录中的3项。。。我该如何处理呢?我认为您应该阅读更多关于关系数据库以及symfony2处理它的方式的信息。但是,如果您查看客户机实体,您会发现方法getServices()
,您可以使用它访问每个客户机服务。我已经阅读了相关内容,并且正在考虑getServices()
,但我不知道如何处理它。。。说真的,我对此很迷茫,通常我使用了很多数组和其他东西,但是Symfony2是不同的。。。