我正在做“待办事项”应用程序,但遇到了一个奇怪的问题。会话中生成和获取的变量是正确的,但是我给出的值被传递为null。
public function new(Session $session)
{
$user=$session->get('user');
$user=$this->getDoctrine()->getRepository(User::class)->findOneBy(array('Login'=>$user),array());
$listName='Shopping';
$content='Eggs';
$now= new \DateTime();
dump($user);
dump($now);
$todo=new Todo();
$todo->setUser($user);
$todo->setList($listName);
$todo->setContent($content);
$todo->setAdded($now);
$em=$this->getDoctrine()->getManager();
$em->persist($todo);
$em->flush();
$this->addFlash(
'success',
'Added it!'
);
return $this->render('result.html.twig', []);
}
问题与$ listName和$ content变量有关。
这是我得到的错误:
在执行带有参数的“ INSERT INTO todo(列表,内容,详细信息,已添加,user_id)VALUES(?,?,?,?,?)”时发生异常[null,null,null,“ 2019-06- 12 08:31:41“,1]:
SQLSTATE [23000]:违反完整性约束:19 NOT NULL约束失败:todo.content
倾销变量给出了它们的值。
我不知道为什么将其作为null传递。有人有解决的想法吗?
答案 0 :(得分:2)
在显示的代码中,您有
// v------ lower case
private $list;
// v------ lower case
private $content;
然后:
public function getList(): ?string
{
// v------ upper case
return $this->List;
}
public function setList(string $List): self
{
// v------ upper case
$this->List = $List;
return $this;
}
public function getContent(): ?string
{
// v------ upper case
return $this->Content;
}
public function setContent(string $Content): self
{
// v------ upper case
$this->Content = $Content;
return $this;
}
它们是differents属性。在属性(例如:private $Content;
)或getters / setter(例如:$this->content = $Content;
)中固定首字母大小写