doctrine 相关问题

Doctrine Project是一个开源库和工具的集合,用于处理用PHP编写的数据库抽象和对象关系映射。

摆脱复杂实体关系的循环引用(Symfony 6.4)

当我想要规范化对象宽度 ObjectNormalizer 和 Serializer 时,我的应用程序中有一个循环引用错误,但我无法摆脱它。 我已经这样做过好几次了,但是这个应用程序更方便......

回答 1 投票 0

如何解决添加需要属性 @ManyToOne(..,cascade={"persist"}) 的新对话时的错误

我收到此错误: 通过关系“App\Entity\ReseauxSociaux\Conversation#utilisateur1”找到了一个新实体,该实体未配置为实体 John_Doe 的级联持久操作。至

回答 1 投票 0

更新与学说和 Symfony 2.7 的关联

我想知道是否存在一种更好的方法来更新来自相反方实体的学说中的关联,在这种情况下,它是多对多类型,但也可能是另一种类型。 这是我使用的方法: $

回答 1 投票 0

Carbon\Carbon 类中的注释“@mixin”从未被导入

我使用 PHP 8.1 将 Symfony 项目从 5.2 迁移到 5.4。我使用 Carbon nesbot/carbon。 我有错误。 [语义错误] Carbon\Carbon 类中的注释“@mixin” 从来没有重要过...

回答 2 投票 0

如何让数据库在 Symfony 上运行

目标: 我试图简单地使用 Symfony 中的学说创建一个数据库。 我的项目安装在 xampp>htdocs 中 我努力了: 我的 apache 服务器正在运行并且可以查看我的站点位置...

回答 3 投票 0

Symfony 1.4 FormFilter:如何添加“不为空”复选框?

我在模型的一个类上使用了 FormFilter,它对我来说非常有用。但我需要一个似乎不存在的功能。 我已经使用“with_empty”选项在

回答 2 投票 0

Doctrine 通过 join OneToMany 来连接实体

我有一个名为“Sections”的实体,其中包含: /** * @ORM\OneToMany(targetEntity =“产品”,mappedBy =“部分”) */ 受保护的$产品; 名为 Product 的实体具有: /** * @ORM\OneToMany(

回答 4 投票 0

如何使用getQuery()->getOneOrNullresult()返回

在我的测试项目中我有2个实体: 最终用户(FOSUserBundle 的扩展) Rezo(将包含两名成员之间经批准的关系) 这两个实体都被定义为: 最终用户实体: 在我的测试项目中,我有 2 个实体: EndUser(FOSUserBundle 的扩展) Rezo(将包含两个成员之间经批准的关系) 这两个实体都被定义为: EndUser实体: <?php namespace Core\CustomerBundle\Entity; use Doctrine\ORM\Mapping as ORM; use FOS\UserBundle\Model\User as BaseUser; use Symfony\Component\Validator\Constraints as Assert; /** * EndUser * * @ORM\Table() * @ORM\Entity(repositoryClass="Core\CustomerBundle\Entity\EndUserRepository") */ class EndUser extends BaseUser { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @var string * @ORM\Column(name="firstname", type="string", length=255) */ private $firstname; /** * @var string * @ORM\Column(name="lastname", type="string", length=255) */ private $lastname; /** * @var \DateTime * * @ORM\Column(name="DateNaissance", type="datetime", nullable=true) */ private $DateNaissance; /** * @ORM\OneToOne(targetEntity="Core\CustomerBundle\Entity\EndUser", cascade={"persist", "merge", "remove"}) * @ORM\JoinColumn(name="adressbook_id", referencedColumnName="id", nullable=true) */ private $adressbook; /** * @ORM\ManyToMany(targetEntity="Core\MyEquiBookBundle\Entity\Discipline", mappedBy="endusers") */ private $disciplines; /** * @ORM\ManyToMany(targetEntity="Core\MyEquiBookBundle\Entity\Experiences", mappedBy="endusers") */ private $experiences; /** * @var string * @ORM\Column(name="avatar", type="string", length=255, nullable=true) */ private $avatar; /** * @var string * @ORM\Column(name="repository", type="string", length=255, nullable=true) */ private $repository; /** * @ORM\OneToMany(targetEntity="Core\MyEquiBookBundle\Entity\NiveauEndUser", mappedBy="enduser", cascade={"remove", "persist"}) */ protected $niveaux; /** * @ORM\OneToMany(targetEntity="Core\GeneralBundle\Entity\Rezo", mappedBy="enduser", cascade={"remove", "persist"}) */ protected $friends; /** * Constructor */ public function __construct() { parent::__construct(); $this->disciplines = new \Doctrine\Common\Collections\ArrayCollection(); $this->niveaux = new \Doctrine\Common\Collections\ArrayCollection(); $this->experiences = new \Doctrine\Common\Collections\ArrayCollection(); $this->friends = new \Doctrine\Common\Collections\ArrayCollection(); $this->expiresAt = new \DateTime("+1 year"); $this->credentialsExpireAt = new \DateTime("+1 year"); } /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set avatar * * @param string $avatar * @return EndUser */ public function setAvatar($avatar) { $this->avatar = $avatar; return $this; } /** * Get avatar * * @return string */ public function getAvatar() { return $this->avatar; } /** * Set repository * * @param string $repository * @return EndUser */ public function setRepository($repository) { $this->repository = $repository; return $this; } /** * Get repository * * @return string */ public function getRepository() { return $this->repository; } /** * Set adressbook * * @param \Core\CustomerBundle\Entity\EndUser $adressbook * @return EndUser */ public function setAdressbook(\Core\CustomerBundle\Entity\EndUser $adressbook = null) { $this->adressbook = $adressbook; return $this; } /** * Get adressbook * * @return \Core\CustomerBundle\Entity\EndUser */ public function getAdressbook() { return $this->adressbook; } /** * Add disciplines * * @param \Core\MyEquiBookBundle\Entity\Discipline $disciplines * @return EndUser */ public function addDiscipline(\Core\MyEquiBookBundle\Entity\Discipline $disciplines) { $this->disciplines[] = $disciplines; return $this; } /** * Remove disciplines * * @param \Core\MyEquiBookBundle\Entity\Discipline $disciplines */ public function removeDiscipline(\Core\MyEquiBookBundle\Entity\Discipline $disciplines) { $this->disciplines->removeElement($disciplines); } /** * Get disciplines * * @return \Doctrine\Common\Collections\Collection */ public function getDisciplines() { return $this->disciplines; } /** * Add niveaux * * @param \Core\MyEquiBookBundle\Entity\NiveauEndUser $niveaux * @return EndUser */ public function addNiveaux(\Core\MyEquiBookBundle\Entity\NiveauEndUser $niveaux) { $this->niveaux[] = $niveaux; return $this; } /** * Remove niveaux * * @param \Core\MyEquiBookBundle\Entity\NiveauEndUser $niveaux */ public function removeNiveaux(\Core\MyEquiBookBundle\Entity\NiveauEndUser $niveaux) { $this->niveaux->removeElement($niveaux); } /** * Get niveaux * * @return \Doctrine\Common\Collections\Collection */ public function getNiveaux() { return $this->niveaux; } /** * Add experiences * * @param \Core\MyEquiBookBundle\Entity\Experiences $experiences * @return EndUser */ public function addExperience(\Core\MyEquiBookBundle\Entity\Experiences $experiences) { $this->experiences[] = $experiences; return $this; } /** * Remove experiences * * @param \Core\MyEquiBookBundle\Entity\Experiences $experiences */ public function removeExperience(\Core\MyEquiBookBundle\Entity\Experiences $experiences) { $this->experiences->removeElement($experiences); } /** * Get experiences * * @return \Doctrine\Common\Collections\Collection */ public function getExperiences() { return $this->experiences; } /** * Add friends * * @param \Core\GeneralBundle\Entity\Rezo $friends * @return EndUser */ public function addFriend(\Core\GeneralBundle\Entity\Rezo $friends ) { $this->friends[] = $friends; return $this; } /** * Remove friends * * @param \Core\GeneralBundle\Entity\Rezo $friends */ public function removeFriend(\Core\GeneralBundle\Entity\Rezo $friends) { $this->friends->removeElement($friends); } /** * Get friends * * @return \Doctrine\Common\Collections\Collection */ public function getFriends() { return $this->friends; } /** * Set firstname * * @param string $firstname * @return EndUser */ public function setFirstname($firstname) { $this->firstname = $firstname; return $this; } /** * Get firstname * * @return string */ public function getFirstname() { return $this->firstname; } /** * Set lastname * * @param string $lastname * @return EndUser */ public function setLastname($lastname) { $this->lastname = $lastname; return $this; } /** * Get lastname * * @return string */ public function getLastname() { return $this->lastname; } /** * Set DateNaissance * * @param \DateTime $dateNaissance * @return EndUser */ public function setDateNaissance($dateNaissance) { $this->DateNaissance = $dateNaissance; return $this; } /** * Get DateNaissance * * @return \DateTime */ public function getDateNaissance() { return $this->DateNaissance; } } Rezo实体: <?php namespace Core\GeneralBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * Rezo * * @ORM\Table() * @ORM\Entity(repositoryClass="Core\GeneralBundle\Entity\RezoRepository") */ class Rezo { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var \DateTime * * @ORM\Column(name="RequestedDate", type="datetime") */ private $requestedDate; /** * @var \DateTime * * @ORM\Column(name="AcceptedDate", type="datetime", nullable=true) */ private $acceptedDate; /** * @ORM\ManyToOne(targetEntity="Core\CustomerBundle\Entity\Enduser", inversedBy="friends", cascade={"refresh"}) * @ORM\JoinColumn(name="user_id", referencedColumnName="id") */ protected $enduser; /** * @ORM\ManyToOne(targetEntity="Core\CustomerBundle\Entity\EndUser", cascade={"refresh"}) * @ORM\JoinColumn(name="friendwith", referencedColumnName="id") */ protected $friendwith; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set requestedDate * * @param \DateTime $requestedDate * @return Rezo */ public function setRequestedDate($requestedDate) { $this->requestedDate = $requestedDate; return $this; } /** * Get requestedDate * * @return \DateTime */ public function getRequestedDate() { return $this->requestedDate; } /** * Set acceptedDate * * @param \DateTime $acceptedDate * @return Rezo */ public function setAcceptedDate($acceptedDate) { $this->acceptedDate = $acceptedDate; return $this; } /** * Get acceptedDate * * @return \DateTime */ public function getAcceptedDate() { return $this->acceptedDate; } /** * Set enduser * * @param \Core\CustomerBundle\Entity\EndUser $enduser * @return Rezo */ public function setEnduser(\Core\CustomerBundle\Entity\EndUser $enduser = null) { $this->enduser = $enduser; return $this; } /** * Get enduser * * @return \Core\CustomerBundle\Entity\EndUser */ public function getEnduser() { return $this->enduser; } /** * Set friendwith * * @param \Core\CustomerBundle\Entity\EndUser $friendwith * @return Rezo */ public function setFriendwith(\Core\CustomerBundle\Entity\EndUser $friendwith = null) { $this->friendwith = $friendwith; return $this; } /** * Get friendwith * * @return \Core\CustomerBundle\Entity\EndUser */ public function getFriendwith() { return $this->friendwith; } 当我跑步时: 应用程序/控制台学说:架构:更新--force 已创建以下 MySQL 表: CREATE TABLE IF NOT EXISTS `Rezo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT NULL, `friendwith` int(11) DEFAULT NULL, `RequestedDate` datetime NOT NULL, `AcceptedDate` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `IDX_681FC4BA76ED395` (`user_id`), KEY `IDX_681FC4B1094AD75` (`friendwith`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; 在RezoController.php控制器中,我想给最终用户接受联系请求的机会,我创建了一个名为:acceptnewrequestAction($id)的函数 public function acceptnewrequestAction($id){ $em = $this->getDoctrine()->getManager(); $rezo = $em->getRepository('CoreGeneralBundle:Rezo')->find($id); $user1 = $rezo->getEnduser(); $user2 = $rezo->getFriendwith(); $dateRequest = $rezo->getRequestedDate(); $rezo->setAcceptedDate(new \DateTime('now')); $em->persist($rezo); $em->flush(); /* check if inverse relation exist */ $query = $em->CreateQuerybuilder(); $query->select('t0.id'); $query->from('CoreGeneralBundle:Rezo','t0'); $query->where('t0.acceptedDate IS NULL'); $query->andWhere('t0.enduser = :userId'); $query->andWhere('t0.friendwith =:userId2'); $query->SetParameters(array('userId'=> $user2, 'userId2'=>$user1)); $result = $query->getQuery()->getOneOrNullResult(); if ( is_object($result)) { $rezo = $em->getRepository('CoreGeneralBundle:Rezo')->findById($result->getId()); $rezo->setAcceptedDate(new \DateTime('now')); } else { $rezo = new Rezo(); $rezo->setRequestedDate(new \Datetime('now')); $rezo->setAcceptedDate(new \DateTime('now')); $rezo->Setenduser($user2); $rezo->setFriendwith($user1); } $em->persist($rezo); $em->flush(); return $this->render(controller('CoreGeneralBundle:Rezo:RezoList')); } 我想知道如何使用结果来知道找到或返回的一个对象是否为 Null,如果存在则更新它或创建一个新对象。 谢谢您的帮助 getOneOrNullResult方法告诉您是否在数据库中找到了任何记录。 如果它返回 null,则意味着您有一些结果,在您的情况下,您必须插入新的结果。 但是当存在一些记录时,此方法将返回实体的对象实例。这意味着在您的情况下您必须更新现有记录。 请记住,当结果集不唯一时,getOneOrNullResult方法会抛出异常。

回答 1 投票 0

使用新创建/删除的对象更新相关实体的集合(onFlush)

我有以下 Doctrine 实体设置: 主实体类 { /** * @var第二实体[] * * @ORM\OneToMany(targetEntity="SecondEntity",mappedBy="mainEntity",cascade={"pe...

回答 1 投票 0

Symfony2 - 在侧栏中设置标签云

我希望重新创建您通常在博客中看到的标签云侧边栏,其中用户在标签上选择,它会显示具有该特定标签的所有帖子。 现在我在雕像上遇到了麻烦......

回答 2 投票 0

Doctrine 在SchemaCreateTable 事件上添加列

我有一些多对多表关系。 我想自动添加一个新列“created_at”。 在 Symfony 和 Doctrine 文档之后,我厌倦了这个: 应用程序/配置/services_dev.yaml [...] ...

回答 1 投票 0

如何显示具有空关系的条目

所以,我的假设是错误的,花了我时间重新搜索问题,所以我完全编辑了我的问题: 我的问题是,在我的页面中,某些条目没有显示。但出口所有...

回答 1 投票 0

Symfony - ManyToOne 关系中的循环引用错误

我正在使用 Symfony 5 和原则。我有两个具有 ManyToOne 关系的实体(Product 和 ProductImage)。每个产品可以有多个图像,产品实体有 getProductImages() m...

回答 2 投票 0

按共同属性对多个不同实体进行排序

使用 Symfony 5.4.17。 Symfony 新手。 我有三个类似的实体类型,并且想要返回一个名为 Food 的数组,我可以在树枝模板中循环它,如下所示: {% for foodArr %} &l...

回答 1 投票 0

sfDoctrineForm - 我如何检查嵌入表单中的对象是否存在并将其与新的父对象关联而不是创建新对象?

我正在制作一个用户注册表,其中涉及 3 个不同的对象:用户、成员个人资料和成员组织。我试图将所有这些嵌入到一个注册表单中,例如“用户”>

回答 1 投票 0

基本 Doctrine MongoDB 抛出内存不足异常

我的数据库中有大约 60k 文档,但我无法查询它们。 我能够成功检索它们的唯一方法是使用 Hydro(false) 选项。 我都尝试过: $dm = $th...

回答 2 投票 0

学说和可为空列的奇怪问题

我对教义有一个奇怪的问题。 我这里有两个函数来检索数据。 第一个 : 公共函数findAccRecent():数组 { $etats = [1, 2]; 返回 $this->

回答 1 投票 0

Doctrine 2 迁移 - postUp 中的事务

在 up() 方法中完成结构数据库更改后,我想使用 postUp() 导入一些数据。导入应使用 DBAL API 在事务中完成。然而,插入物似乎...

回答 1 投票 0

Symfony Doctrine:检查与数据库的连接

有一段时间检查控制器中数据库的连接工作正常,执行以下操作: $em->getConnection()->connect(); $connected = $em->getConnection()->isConnected()...

回答 2 投票 0

Codeception:Symfony 设备未自动连接

我有一个非常简单的存储库测试用例: AmaRepositoryCest 类 { 公共函数_before(FunctionalTester $I) { $I->loadFixtures(AmaFixture::class); } 公共职能...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.