Php 原则:设置主键
我有一个带有一些字段的表,第一个字段是我的主键,名为Php 原则:设置主键,php,database,symfony,orm,doctrine-orm,Php,Database,Symfony,Orm,Doctrine Orm,我有一个带有一些字段的表,第一个字段是我的主键,名为token 我需要那个标记不是自动的,所以,我想设置这个值。比如说, $em = $this->getDoctrine()->getManager(); $object->setToken("first"); $object->setValue("123"); $em->persist($object); $em->flush(); 但是,在我的数据库中,令牌总是nu
token
我需要那个标记不是自动的,所以,我想设置这个值。比如说,
$em = $this->getDoctrine()->getManager();
$object->setToken("first");
$object->setValue("123");
$em->persist($object);
$em->flush();
但是,在我的数据库中,令牌总是null
,为什么
当我刷新时,标记值消失
在我的实体中,令牌声明为:
/**
* @var string
*
* @ORM\Column(name="token", type="string", length=45, nullable=false)
* @ORM\Id
*/
private $token;
/**
* Set token
*
* @param string $token
* @return Downloads
*/
public function setToken($token)
{
$this->token = $token;
return $this;
}
/**
* Get token
*
* @return string
*/
public function getToken()
{
return $this->token;
}
也许这会有帮助
如果您没有使用
原则
命令创建表,请检查数据库中$token
是否设置为主键
。尝试使用ORM\GeneratedValue
/**
* @var string
*
* @ORM\Column(name="token", type="string", length=45, nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="NONE")
*/
private $token;
谢谢,但这不是问题,我有注释,只有primari键像默认值一样存储。您是否尝试使用@GeneratedValue(strategy=“CUSTOM”)和@ORM\CustomIdGenerator(class=“App\Entity\YourOwnGenerator”)使用您自己的AbstractIdGenerator?看见