douhuo3696 2013-12-18 15:17
浏览 45

Symfony:我无法存储主键值

I have a problem, I have a table (downloads) with two fields: Token (primary key) and value.

I have my entity Downloads with these methods (only show token methods, value works right):

/**
 * @var string
 *
 * @ORM\Column(name="token", type="string", length=45, nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
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;
}

But, when I do this in my controller:

$em = $this->getDoctrine()->getManager();
$Download = new Downloads();
        $Download->setToken($token);       
        $Download->setValid($now); 
$em->persist($Download); 
$em->flush();

Object is well created, but in my database Valid is stored correctly, and token is store empty!!

if I see the values, util $em->flush(); object download has two correct values, but after this, token (primary key) disappear his value.

How can I do?

  • 写回答

3条回答 默认 最新

  • dso15221 2013-12-18 15:21
    关注

    you have to create auto increment for your columns like this

     /**
         * @ORM\Id
         * @ORM\Column(type="integer")
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id;
    
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分