आप एक मॉडल पर डेटा को मान्य करते हैं, तो डेटा पहले से ही set()
है। यह है कि आप का मतलब इसे मॉडल की $data
संपत्ति पर एक्सेस कर सकते हैं। नीचे दिया गया उदाहरण उस फ़ील्ड को चेक करता है जिसे हम मान्य कर रहे हैं यह सुनिश्चित करने के लिए कि यह सत्यापन नियमों (जैसे पासवर्ड पुष्टिकरण फ़ील्ड) में परिभाषित कुछ अन्य फ़ील्ड जैसा है।
सत्यापन नियम इस तरह कुछ दिखेंगे:
var $validate = array(
'password' => array(
'minLength' => array(
'rule' => array('minLength', 6),
'message' => 'Your password must be at least 6 characters long.'
),
'notempty' => array(
'rule' => 'notEmpty',
'message' => 'Please fill in the required field.'
)
),
'confirm_password' => array(
'identical' => array(
'rule' => array('identicalFieldValues', 'password'),
'message' => 'Password confirmation does not match password.'
)
)
);
हमारा सत्यापन फ़ंक्शन पास किए गए फ़ील्ड के डेटा (confirm_password) को देखता है और उस नियम के अनुसार इसकी तुलना करता है जिसे हमने नियम में परिभाषित किया है ($compareFiled
को पारित किया गया है)।
function identicalFieldValues(&$data, $compareField) {
// $data array is passed using the form field name as the key
// so let's just get the field name to compare
$value = array_values($data);
$comparewithvalue = $value[0];
return ($this->data[$this->name][$compareField] == $comparewithvalue);
}
यह एक सरल उदाहरण है, लेकिन आप कुछ भी आप $this->data
साथ चाहते हो सकता है। विवरण के लिए
var $validate = array(
'verify_password' => array(
'rule' => array('requireNotEmpty', 'password')
)
);
धन्यवाद :) – Alvaro
आशा है कि यह कुछ सामान अप को मंजूरी दे दी:
अपनी पोस्ट में उदाहरण कुछ इस तरह दिख सकता है:
और नियम! – jeremyharris
केकपीएचपी 2.4 में ऐसा लगता है कि आप फ़ंक्शन के संदर्भ में पास नहीं कर सकते हैं, ऐसा लगता है कि यह मेरे लिए काम नहीं कर रहा था, लेकिन दस्तावेज़ों में उदाहरण का उपयोग करके और इसे $ चेक में बदलने के लिए काम कर रहा था। – mtpultz