硬编码值作为null传递

时间:2019-06-12 08:41:56

标签: sqlite symfony

我正在做“待办事项”应用程序,但遇到了一个奇怪的问题。会话中生成和获取的变量是正确的,但是我给出的值被传递为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传递。有人有解决的想法吗?

1 个答案:

答案 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;)中固定首字母大小写