Doctrine - 主键缺失值
Doctrine - Missing value for primary key
我有这个实体:
/**
* Class ParserURLs
* @package AppBundle\Entity
* @ORM\Entity(repositoryClass="AppBundle\Entity\ParserURLsRepository")
*/
class ParserURLs
{
/**
* @ORM\Id
* @ORM\Column(type="string", length=50)
*/
protected $external_id;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Parser")
*/
protected $parser;
...
}
任何我尝试通过 $parser 过滤的结果,如下所示:
$query = $this->doctrine->getManager()->createQuery(
'SELECT u
FROM AppBundle:ParserURLs u
WHERE u.parser = :parser')
->setParameter('parser', $this->parser);
$result = $query->getResult();
但是 Doctrine 告诉我:Missing value for primary key parser on AppBundle\Entity\ParserURLs
我认为问题是因为多个主键 external_id-parser 但现在,我只想按其中一个进行搜索。在 Doctrine 中不可能吗?我需要这个主键。
提前谢谢你
您的注释中似乎缺少名称 属性。您的定义应如下所示:
/**
* @var string
*
* @ORM\Column(name="id", type="string", length=9)
* @ORM\Id
*/
private $id;
其中 name="id" 是您数据库中字段的名称
如果您的 ID 具有自动递增功能,则必须添加此行:
@ORM\GeneratedValue(strategy="AUTO")
我有这个实体:
/**
* Class ParserURLs
* @package AppBundle\Entity
* @ORM\Entity(repositoryClass="AppBundle\Entity\ParserURLsRepository")
*/
class ParserURLs
{
/**
* @ORM\Id
* @ORM\Column(type="string", length=50)
*/
protected $external_id;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Parser")
*/
protected $parser;
...
}
任何我尝试通过 $parser 过滤的结果,如下所示:
$query = $this->doctrine->getManager()->createQuery(
'SELECT u
FROM AppBundle:ParserURLs u
WHERE u.parser = :parser')
->setParameter('parser', $this->parser);
$result = $query->getResult();
但是 Doctrine 告诉我:Missing value for primary key parser on AppBundle\Entity\ParserURLs
我认为问题是因为多个主键 external_id-parser 但现在,我只想按其中一个进行搜索。在 Doctrine 中不可能吗?我需要这个主键。 提前谢谢你
您的注释中似乎缺少名称 属性。您的定义应如下所示:
/**
* @var string
*
* @ORM\Column(name="id", type="string", length=9)
* @ORM\Id
*/
private $id;
其中 name="id" 是您数据库中字段的名称
如果您的 ID 具有自动递增功能,则必须添加此行:
@ORM\GeneratedValue(strategy="AUTO")