Symfony-接受API调用中的字段

时间:2018-07-05 08:42:21

标签: php mysql api symfony

我需要在注册api调用中接受terms_id字段。如果设备将它们发送给api调用,则需要使用它们在表中创建新行。

如果在没有这些参数的情况下进行了注册电话,请不要做任何事情。

我已经进行了api调用,但是不知道如何像我解释的那样将它们绑定在一起。

这是我的代码。

public function register($firstName, $lastName, $email)
{
    $user = new User();
    $user->setFirstName($firstName);
    $user->setEmail($email);
    $this->em->persist($user);
    $this->em->flush();

    return $user; 
}

和条款api调用

public function acceptedTerms(User $user, $termsId)
{
    $termUsers = $this->getUserTermsRepository()
        ->createQueryBuilder('ut')
        ->select('ut')
        ->where('ut.terms = :terms')
        ->andWhere('ut.user = :user')
        ->setParameters([
            'terms' => $terms,
            'user' => $user,
        ])
        ->setMaxResults(1)
        ->getQuery()
        ->getOneOrNullResult();

    if (empty($termUsers)) {
        $termUsers = new UserTerms();
        $termUsers->setUser($user);
        $termUsers->setTerms($terms);
        $this->em->persist($termUsers);
        $this->em->flush();
    }

    return $termUsers;
}

然后..

public function getUserTermsAction()
{
    $this->requirePostParams(['terms_id']);
    $this->get('member.account')->acceptedTerms($this->getUser(), $this->data['terms_id']);

    return $this->success();
}

我的想法是将它们绑定在注册api调用中,例如...

if(isset($this->data['terms_id'])) {
    $acceptTerms = $this->getUserTermsAction();
}

或...

if(isset($this->data['terms_id'])) {
    $this->get('member.account')->acceptedTerms($this->getUser(), $this->data['terms_id']);
}

但是无法弄清楚这是否是正确的方法。有什么建议吗?

0 个答案:

没有答案