public function setEmail($userEmail)
{
$userEmail = trim($userEmail);
$validator = new EmailAddress();
if ($validator->isValid($userEmail)) {
$userId = $this->getId();
$select = $this->select(function (Select $select) use($userEmail, $userId) {
$select->where->equalTo('email', $userEmail);
if ($userId !== null) {
$select->where->notEqualTo('id', $userId);
}
});
$row = $this->fetchRow($select);
if (empty($row)) {
$this->setData('email', $userEmail);
return true;
}
}
return false;
}