2014-04-28 51 views
1

試圖製作一個非常標準的用戶編輯頁面。 '密碼'和'重新密碼'開始隱藏,但可以通過點擊「編輯密碼」按鈕打開。UnlockField在CakePHP中不起作用

但是 - 我一直從安全組件獲取「auth」黑洞錯誤。

the CakePHP book,我試圖解開這個領域的視圖(領域嘗試過,域之後,就在表內,只是形式之前,並在表格末尾:

$this->Form->unlockField('User.password'); 
$this->Form->unlockField('User.re-password'); 

但是 - 並不能幫助我能得到它的工作的唯一辦法是徹底解開整個動作(似乎並不理想)。

$this->Security->unlockedActions = array('admin_edit'); 

如果我不關閉字段,然後它工作,但我需要禁用它們,因爲如果我不這樣做,內置的「notEmpty」方面會導致javascript查找這些字段時出錯。

查看/ HTML:

<div id="edit-password-area" style="display:none;"> 
    <div class="form-group"> 
     <label>Password</label> 
     <?php echo $this->Form->input('User.password', array('class'=>'input-xxlarge form-control', 'value'=>'', 'disabled'=>'disabled')); ?> 
     <p class="note">Must be at least 8 characters in length.</p> 
    </div> 
    <div class="form-group"> 
     <label>Verify Password</label> 
     <?php echo $this->Form->input('User.re_password', array('type'=>'password', 'class'=>'input-xxlarge form-control', 'value'=>'', 'disabled'=>'disabled')); ?> 
     <p class="note">Must exactly match the "Password".</p> 
    </div> 
</div> 

<div id="edit-password-button-area"> 
    <a href="javascript:showPasswordArea();">Edit Password</a> 
</div> 

<div id="dont-edit-password-button-area" style="display:none;"> 
    <a href="javascript:hidePasswordArea();">Don't Edit Password</a> 
</div> 

的Javascript:

<script> 
function showPasswordArea() { 
    $('#edit-password-area').show(); 
    $('#edit-password-area input').removeAttr('disabled'); 
    $('#dont-edit-password-button-area').show(); 
    $('#edit-password-button-area').hide(); 
    $('#UserPassword').focus(); 
} 
function hidePasswordArea() { 
    $('#edit-password-area').hide(); 
    $('#edit-password-area input').prop('disabled', 'disabled'); 
    $('#dont-edit-password-button-area').hide(); 
    $('#edit-password-button-area').show(); 
} 
</script> 

回答

0

試試這個語法:

$this->Security->unlockedFields = array('yourfield'); 
+0

我已經試過了,而這是行不通的。 :/ – Dave