我正在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
我将如何做到这一点?
谢谢!
答案 0 :(得分:4)
提交添加表单
通过$ this-> data ['Question'] ['email']搜索合适的访问者。
$this->Question->Visitor->findByEmail($this->data['Question']['email']);
如果没有返回任何内容,请另存为新记录。
如果您发现访问者设置了$ this-> data ['Question'] ['visitor_id']并带有主键
使用主键设置$ this-> data ['Visitor'] ['id'](假设他们在同一表单上添加访问者信息)然后保存。如果在更新中存在主键,则将在访问者
上执行