我需要在注册api调用中接受terms_id和privacy_id字段。这些字段必须是可选的。如果设备将它们发送到api调用,则需要使用它们在user_terms和user_privacy表中创建新行。
如果在没有这些参数的情况下进行了注册电话,请不要执行任何操作。
我已经对所有这些对象进行了api调用,但不像我解释的那样将它们绑定在一起。
这是我的代码。
public function register($firstName, $lastName, $email)
{
$user = new User();
$user->setFirstName($firstName);
$user->setLastName($lastName);
$user->setEmail($email);
$rand_pass = hash('sha256', $this->uniqid);`
$this->em->persist($user);
$this->em->flush();
return $user; }
Terms api调用
public function acceptedTerms(User $user, $termsId)
{
$terms = $this->getTermsRepository()->find($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;
}
相同的api调用用于隐私表。
有什么建议吗?