我有以下功能找到匹配的用户并将其状态更改为活动状态:
public function activate ($username = null, $key = null)
{
if ($username == null || $key == null)
{
$this->redirect(array('action' => 'login'));
}
if ($this->User->hasAny(array(
'User.username' => $username,
'User.activation_key' => $key,
'User.status' => 0,
)))
{
$user = $this->User->findByUsername($username);
$this->User->id = $user['User']['id'];
$this->User->saveField('status', 1);
$this->User->saveField('activation_key', md5(uniqid()));
$this->Session->setFlash(__('Account activated successfully.', true), 'default', array('class' => 'success'));
}
else
{
$this->Session->setFlash(__('An error occurred.', true), 'default', array('class' => 'error'));
}
$this->redirect(array('action' => 'login'));
}
但if statement: if ($this->User->hasAny(array(
'User.username' => $username,
'User.activation_key' => $key,
'User.status' => 0,
)))
是否必要,因为我仍然需要通过他们的电子邮件地址找到用户(这显然是独一无二的)
答案 0 :(得分:1)
显然不是。
这是我第一次知道蛋糕中有hasAny():))
答案 1 :(得分:0)
没有必要。当您需要满足一些额外条件时,您可以将它们置于您的查找条件中。