CakePHP 1.3 - 检查数据库中是否存在用户电子邮件地址?

时间:2011-03-23 11:52:15

标签: cakephp

我正在CakePHP 1.3中构建一个简单的FAQ系统,它将用户与他们提出的问题联系起来。

我遇到的问题是,如果同一个用户提出另一个问题(没有登录或帐户)我不想在数据库中为该用户创建另一个条目(根据他们的电子邮件地址是否存在),而只是将用户ID分配给问题。

我的add()函数目前如下:

function add() {
        if(!empty($this->data)) {
            unset($this->Question->Visitor->validate['visitor_id']);

            if ($this->Question->saveAll($this->data)) {
                $this->Session->setFlash(__('The question has been saved', true));
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('The question could not be saved. Please, try again.', true));
            }
        }
    }

我的数据库结构如下:

Questions
    id
    visitor_id
    question
    url
    status_id
    category_id
    description
    keywords
    created
    modified

Visitors
    id
    name
    emailaddress
    newsletter
    ipaddress
    created
    modified

我将如何做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:4)

提交添加表单

通过$ this-> data ['Question'] ['email']搜索合适的访问者。

$this->Question->Visitor->findByEmail($this->data['Question']['email']);

如果没有返回任何内容,请另存为新记录。

如果您发现访问者设置了$ this-> data ['Question'] ['visitor_id']并带有主键

使用主键设置$ this-> data ['Visitor'] ['id'](假设他们在同一表单上添加访问者信息)然后保存。如果在更新中存在主键,则将在访问者

上执行