2011-03-23 57 views
1

我在CakePHP 1.3中構建了一個簡單的FAQ系統,它將用戶與他們提出的問題聯繫起來。CakePHP 1.3 - 檢查數據庫中是否存在用戶電子郵件地址?

我遇到的問題是,如果同一用戶提出另一個問題(沒有登錄或帳戶)我不想在該數據庫中爲該用戶創建另一個條目(根據他們的電子郵件地址是否存在) ,而只是將該用戶標識分配給該問題。

我的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 

我怎麼會去這樣做呢?

謝謝!

回答

4

那麼在提交附加形式的

由$這個 - >數據[「問題」] [「電子郵件」]尋找合適的訪客。

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

如果沒有內容返回保存爲新記錄。

如果發現有遊客一組$這個 - >數據[ '問題'] [ 'visitor_id']與主鍵

設置$這個 - >數據[ '遊客'] [ '身份證']與主鍵(假設他們在相同的表格上添加訪問者信息)然後保存。隨着主鍵的存在,更新將在訪問者上執行

+0

這非常有意義,我會放棄它,非常感謝! – Probocop 2011-03-23 13:57:19

+0

我沒有給我的電子郵件列命名爲'email',所以我不能使用findByEmail函數,但我通過執行以下操作獲得了相同的結果:http://pastie.org/1704598 – Probocop 2011-03-23 16:42:28

+0

然後使用findByEmailaddress(),它的一種提取字段名稱的神奇方法! http://book.cakephp.org/view/1026/findBy – Leo 2011-03-23 16:49:13

相關問題