gpt4 book ai didi

php - 一对多关系的 Symfony2 createQueryBuilder

转载 作者:行者123 更新时间:2023-11-29 06:19:17 24 4
gpt4 key购买 nike

现在我正在尝试通过将内容 ID 与用户 ID 匹配来编写查询返回用户名和内容的代码。这是我的 table 的样子。

我有两个表。

  1. 一个是用户表包含usernameuserid
  2. 另一个表是内容表,包含内容 ID、content 本身和 userid

我想写这样的查询:

SELECT username, content 
FROM user
JOIN ON content
WHERE user.userid = content.userid

这样,查询返回用户名和用户创建的内容。但我不知道如何在 Symfony2 或 DQL 中做到这一点。

最佳答案

第一步创建实体用户和内容

例如:

AppBundle/Entity/User.php

/**
* User
*
* @ORM\Table(name="user")
* @ORM\Entity
*/
class User
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="username", type="string", length=24, nullable=false)
*/
private $username;

/**
* @ORM\OneToOne(targetEntity="AppBundle\Entity\Content")
* @ORM\JoinColumn(name="content_id", referencedColumnName="id")
**/
private $content;

/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* @return string
*/
public function getUsername()
{
return $this->username;
}

/**
* @param string $username
*/
public function setUsername($username)
{
$this->username = $username;
}

/**
* @return \AppBundle\Entity\Content
*/
public function getContent()
{
return $this->content;
}

/**
* @param string $content
*/
public function setContent($content)
{
$this->content = $content;
}
}

AppBundle/Entity/Content.php

/**
* Content
*
* @ORM\Table(name="content")
* @ORM\Entity
*/
class Content
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var string
*
* @ORM\Column(name="text", type="text", nullable=true)
*/
private $text;

/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}

/**
* @return string
*/
public function getText()
{
return $this->text;
}

/**
* @param string $text
*/
public function setText($text)
{
$this->text = $text;
}
}

第 2 步

在 Controller 中使用:

$em = $this->getDoctrine()->getManager();
$user = $em->getRepository('\AppBundle\Entity\User')->find($userId);
//content for user
$content = $user->getContent()->getText();

关于php - 一对多关系的 Symfony2 createQueryBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34188633/

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