2015-02-11 71 views
0

我已經使用Form Helper創建了一個表單,其中一個字段是值(例如)A和B的選擇。CakePHP Howto允許將值從A更改爲B但不反之亦然(B到A)

添加記錄時,選項A和B都可用。 但是,您也可以稍後編輯記錄:我想允許從A切換到B,但不允許從B切換到A!

我該如何安全地做到這一點&很好?

  1. 我在模型中有一個 '規則'=>數組( 'INLIST',陣列( 'A', 'B'))
  2. 我不'不想要一個解決方案,可以從'檢查元素'modifitation改變前端或以其他方式發佈行動

在此先感謝!

回答

2

Write a custom validation rule用邏輯來檢查並應用它on edit only

public $validate = array(
    'yourField' => array(
     'on' => 'update', 
     'rule' => array('checkAandB'), 
     'message' => 'You cant go back to A' 
    ) 
); 

public function checkAandB($check) { /* your check logic here*/ } 
+0

非常有用的方向你指出我,謝謝!但是我似乎無法找到在公共函數checkAandB(noob問題)中獲取請求數據的正確方法。我有'if($ this-> data ['Group'] ['field'] =='B'&& $ this-> validate ['field'] =='B'){$ passed = false'不起作用。任何線索?再次感謝! – 2015-02-11 15:47:52

+0

我的意思是,我如何從這個函數的窗體中獲得輸入值,我嘗試了很多選項,例如$ this-> validate ['field']和$ this-> request-> data ['field']和$ this-> request-> data ['Group'] ['field'] ... – 2015-02-11 16:13:12

+0

您不驗證將爲您調用該方法的字段數據,它是一個回調方法(''rule'=>數組('checkAandB')'),仔細檢查文檔,它解釋說。 – burzum 2015-02-11 16:51:41

相關問題