Закодированные значения передаются как нулевые - PullRequest
0 голосов
/ 12 июня 2019

Я делаю приложение To Do и застрял в странной проблеме.Переменные, сгенерированные и взятые из сеанса, являются правильными, но значения, которые я дал, передаются как нулевые.

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

Переменные дампа дали свои значения.

Я понятия не имею, почему он передается как ноль.У кого-нибудь есть идея, чтобы это исправить?

1 Ответ

2 голосов
/ 12 июня 2019

В показанном коде у вас есть

//       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;
}

Это разные свойства.Исправьте регистр первой буквы в свойстве (например, private $Content;) или в методах получения / установки (например: $this->content = $Content;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...