2013-07-08 149 views
0

我是cakephp的新手。爲了安全更新,我要求用戶輸入他的出生日期。如果他輸入正確的出生日期,我想向他展示包含他的安全問題和他的密碼的其他表格。CakePhp幫助需要

有兩種不同的形式。一種是安全檢查(出生日期驗證),另一種是設置安全(安全問題+密碼)。

如果設置了安全性,則首先顯示安全檢查表並要求輸入他的出生日期。如果出生日期正確,則應顯示設置的安全形式,這是我無法做到的。

我的個人資料頁面代碼顯示了這兩種形式;

<?php if($_GET['edit'] == 'set_security'){ ?> 
     <?php if (empty($security_set)): ?> 
     <?= $this->element('../users/set_security') ?> 
     <?php else:?> 
     <?= $this->element('../users/set_security_check') ?> 
     <?php endif; ?> 
     <?php } ?> 

,我已經寫在conntroller是功能,

function set_security_check() 
{ 
    $user = $this->_authenticate_user(); 
    $id = $user['account_num']; 
    $this->loadModel('UserProfile'); 
    $user_profile = $this->UserProfile->read(null, $id); 
    $oldBirthdate = $user_profile['UserProfile']['birthday']; 
    if (!empty($this->data)) { 
     $birthday = $this->data['UserProfile']['birthday']; 
     if($oldBirthdate != $birthday) 
     { 
      $this->flashMessage(__('Your Birthday is Invalid. Please, try again.', true)); 

     } 
     else 
     { 
      $this->flashMessage(__('Your Birthday Verified successfully', true), 'Sucmessage'); 
      $this->set('success', true); 
     } 

    } 


} 

當用戶點擊安全編輯按鈕,我送一個查詢字符串/ profile文件?編輯= set_security。

如何在輸入正確的出生日期時顯示其他表格?

+0

是什麼你的視圖文件中的$ security_set意味着它包含什麼? –

+0

謝謝您的回覆。$ security_set表示用戶是否已經設置了他的安全性。意思是他已經填寫了安全表單並輸入了他的安全問題。我已設置他的安全性並想要更新它。然後,如果他點擊編輯時,首先顯示他的出生日期。如果他輸入正確的出生日期,那麼他會顯示另一個表格。我無法向他顯示其他表格。 –

+0

更好的問題標題急需。你真的在問如何呈現不同的視圖文件嗎?你的代碼通常看起來很奇怪。 – AD7six

回答

1

你可以簡單地顯示任何其他形式的使用下面的代碼在你的控制器在您的條件符合:

$this->render('/users/other_form'); 

如果我是正確的,那麼你的代碼應該是這樣的:

function set_security_check() 
{ 
    $user = $this->_authenticate_user(); 
    $id = $user['account_num']; 
    $this->loadModel('UserProfile'); 
    $user_profile = $this->UserProfile->read(null, $id); 
    $oldBirthdate = $user_profile['UserProfile']['birthday']; 
    if (!empty($this->data)) { 
    $birthday = $this->data['UserProfile']['birthday']; 
    if($oldBirthdate != $birthday) 
    { 
     $this->flashMessage(__('Your Birthday is Invalid. Please, try again.', true)); 

    } 
    else 
    { 
     $this->flashMessage(__('Your Birthday Verified successfully', true), 'Sucmessage'); 
     $this->set('success', true); 
     $this->render('/controller_name/other_form'); 
    } 
    } 
} 
+0

此鏈接可能會幫助您實現相同的目的:http://stackoverflow.com/questions/11711385/rendering-controller-to-a-different-view-in-cakephp –