我需要在注册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']);
}
但是无法弄清楚这是否是正确的方法。有什么建议吗?