Symfony - токен - PullRequest
0 голосов
/ 01 июня 2018

Я написал запрос и функцию, но не могу передать эту логику.Мне нужно написать заявление, где я не могу генерировать то же значение токена снова при публикации в базу данных.

public function getToken($user, $token)
{
    $tok = $this->getRepository()
        ->createQueryBuilder('pt')
        ->select('pt')
        ->where('pt.user = :user')
        ->andWhere('pt.token = :token')
        ->setParameter('user', $user)
        ->setParameter('token', $token)
        ->getQuery()
        ->getResult();

    if(empty($token)) {
        $tok = new Token();
        $tok->setUser($user);
        $tok->setToken($token);
        $this->em->persist($tok);
        $this->em->flush();
    }

    return $tok;
}

и в моем контроллере ..

public function getTokenAction()
{
    $this->requirePostParams(['user', 'token']);

    $this->get('token')->getToken($this->getUser(), $this->data['token']);

    return $this->success();
}

Итак, если этозначение токена находится в БД, чтобы больше не публиковать его, а если нет, то да.

1 Ответ

0 голосов
/ 01 июня 2018

Ваша проблема в том, что вы создаете новый токен только тогда, когда токен параметра $ пуст, а не когда токен object $ пуст.

Просто заменитеif(empty($token)) на if(empty($tok))

Вам также следует заменить ->getResult() на ->getOneOrNullresult(), поскольку вам нужен только один маркер объекта, а не массив.

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