我的代码出了问题。我只是想在我的数据库中插入一组简单的数据,但是doctrine将我的属性(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 :(得分:1)
尝试清除您的学说缓存,代码看起来很好,不会成为问题。
./bin/console doctrine:cache:clear-metadata
./bin/console doctrine:cache:clear-query
./bin/console doctrine:cache:clear-result
答案 1 :(得分:1)
我解决了这个问题,我做了一个监听器在preUpdate上把值设为null,我完全忘了它:(
答案 2 :(得分:0)
也许你的问题是由于你的二传手中的拼写错误。
你确定你的二传手setTelVerifCode
看起来完全像这样吗?
public function setTelVerifCode($code)
{
$this->telVerifCode = $code;
}