我想检查我的表中是否存在$_POST['email']
的值。否则,应将新值添加到数据库中。
$member = new Members();
$member->setEmail($_POST['email']);
$member->setName($_POST['vorname']);
$member->setPassword(password_hash($_POST['pw1'], PASSWORD_DEFAULT));
$em = $this->getDoctrine()->getManager();
$em->persist($member);
$get_email = $this->getDoctrine()->getRepository('AppBundle:Members')->find($_POST['email']);
if (!$get_email) {
$em->flush();
echo 'User registered.';
}
else {
echo 'User already exists.';
}
在这种情况下,用户始终被注册。
我的代码有什么问题?
使用方法 findBy()
获取关联数组 "field" => "value"' 作为参数。
所以在你的例子中(假设电子邮件存储在名为email
的列中(:
$get_email = $this->getDoctrine()->getRepository('AppBundle:Members')->findBy(array('email' => $_POST['email']));
find($id(
findBy(array(((
findOneBy(array(((
我认为您不应该混淆三种方法