我有这个实体:
/**
* Class ParserURLs
* @package AppBundleEntity
* @ORMEntity(repositoryClass="AppBundleEntityParserURLsRepository")
*/
class ParserURLs
{
/**
* @ORMId
* @ORMColumn(type="string", length=50)
*/
protected $external_id;
/**
* @ORMId
* @ORMManyToOne(targetEntity="AppBundleEntityParser")
*/
protected $parser;
...
}
我试图通过$解析器获得结果过滤,例如:
$query = $this->doctrine->getManager()->createQuery(
'SELECT u
FROM AppBundle:ParserURLs u
WHERE u.parser = :parser')
->setParameter('parser', $this->parser);
$result = $query->getResult();
但学说告诉我: Missing value for primary key parser on AppBundleEntityParserURLs
我认为问题是因为多个主键 external_id-parser ,但是现在,我只想通过其中之一进行搜索。在学说中不可能吗?我需要这个主要键。预先感谢您
看起来您在注释中缺少名称属性。您的定义应该看起来像这样:
/**
* @var string
*
* @ORMColumn(name="id", type="string", length=9)
* @ORMId
*/
private $id;
其中名称=" id"是您的字段名称db
如果您的ID具有自动启动,则必须添加此行:
@ORMGeneratedValue(strategy="AUTO")