2016-09-26 58 views
1

我的代码出现问题。我只是试图插入一组简单的数据到我的分贝,但教条插入我的属性(telVerifCode)为NULL。在刷新原则上将值设置为空

我已经抛弃了我的数据,发现该属性(telVerifCode)中有一些值,但是在我刷新后它被设置为NULL。

这是我的控制器:

$user = $this->getUser(); 

if ($user->getTel() != $tel || $user->getTelCode() != $telCode) { 

    try { 
     $code = $this->sendTelehopneCode($user); 
    } catch (\Exception $e) { 
     //....... 
    } 

    // update user phone verifcation fields // 
    $user->setTelVerifCode($code); 
    $user->setLastTelVerificationCodeDate(new \DateTime()); 

    $em->persist($user); 
    $em->flush(); 
} 

我的ORM映射:

/** 
* @var string 
* 
* @ORM\Column(name="tel_verification_code", type="string", length=255, nullable=true) 
*/ 
protected $telVerifCode; 
/** 
* @var \DateTime 
* 
* @ORM\Column(name="last_tel_verification_code_date", type="date", nullable=true) 
*/ 
protected $lastTelVerificationCodeDate; 

sendTelehopneCode功能:

private function sendTelehopneCode($user) 
{ 
    $code = strval(rand(100000, 999999)); 
    $tel = $user->getTelCode() . $user->getTel(); 
    $msg = 'code:' . $code; 

    $twilio = $this->get('twilio.api'); 
    try { 
     $message = $twilio->account->messages->sendMessage(
      "+14*******", // Verified Outgoing Caller ID or Twilio number 
      $tel, // The phone number you wish to send a message to 
      $msg 
     ); 
    } catch (\Services_Twilio_RestException $e) { 
     throw $e; 
    } 

    return $code; 
} 
+0

是否有原始数据和ORM配置(串)之间的任何数据类型不匹配? – Jeet

+0

$ code是一个字符串数据 – ghazi2008

+0

然后在'flush('''''''''''''''''你可以把所有的代码都放在控制器中? – Jeet

回答

0

也许你的问题是由于您的二传手一个错字。 你确定你的二传手setTelVerifCode看起来像这样吗?

public function setTelVerifCode($code) 
{ 
    $this->telVerifCode = $code; 
} 
+0

是的,绝对是我的setter看起来是这样的 public function setTelVerifCode($ telVerifCode){$ this-> telVerifCode = $ telVerifCode;} – ghazi2008

1

试着清理你的教条缓存,代码看起来很好,不能成为问题。

./bin/console doctrine:cache:clear-metadata 
./bin/console doctrine:cache:clear-query 
./bin/console doctrine:cache:clear-result 
1

我解决了这个问题,我做了一个听众在更新前一个让null值,我完全忘记了它:(

相关问题