When inserting an entity with associations, is there a way to just use the FK instead of retrieving the entity?(插入具有关联的实体时,有没有办法只使用 FK 而不是检索实体?)
问题描述
我需要插入一个具有关联的实体.
I need to insert an entity which has associations.
如果我已经拥有关联实体的 FK,有没有办法将主要实体插入到仅填充 FK 的数据库中?
If I already have the FK's of the associated entities, is there a way to insert the primary entity into the db with just the FK's populated?
或者我总是必须
- 通过 FK 检索关联实体,
- 填充涉及关联的主要实体的属性,
- 然后调用persist方法.
推荐答案
你想要一个 引用代理
假设我有帖子和标签.一个帖子有很多标签.我从用户那里得到了一堆标签,他们检查了一堆复选框.
Let's say I have Posts and Tags. A Post hasMany Tags. I get a bunch of tags from the user, who checked a bunch of checkboxes.
以下内容将向现有帖子添加标签,而无需先获取每个标签实体.它通过使用由 EntityManager::getReference()
生成的引用代理来实现:
The following would add tags to an existing post, without fetching each tag entity first. It does this by using reference proxies, generated by EntityManager::getReference()
:
$tag_ids = $_POST['tag_id']; // an array of integers representing tag IDs.
$post = $em->getRepository('Post')->find($post_id); // returns a Post entity.
foreach($tags_ids as $tid){
$post->addTag($em->getReference('Tag',$tid));
}
$em->persist($post);
$em->flush();
这篇关于插入具有关联的实体时,有没有办法只使用 FK 而不是检索实体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:插入具有关联的实体时,有没有办法只使用 FK 而不是检索实体?


基础教程推荐
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- HTTP 与 FTP 上传 2021-01-01
- 使用 PDO 转义列名 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01