2015-07-11 7 views

उत्तर

13

आप नियम validateUnique का उपयोग करना चाहते हैं। उदाहरण के लिए, एक ईमेल पते की जांच के लिए अद्वितीय है पर एक UsersTable: -

public function validationDefault(Validator $validator) 
{ 
    $validator->add(
     'email', 
     ['unique' => [ 
      'rule' => 'validateUnique', 
      'provider' => 'table', 
      'message' => 'Not unique'] 
     ] 
    ); 

    return $validator; 
} 

विवरण the API docs में पाया जा सकता।

+0

बहुत बहुत धन्यवाद !!! मैं buildRules (नियम चेकर $ नियम) का उपयोग कर रहा था जो ठीक काम कर रहा था लेकिन उचित त्रुटि संदेश नहीं दे रहा – pkk

+0

संपादन समय के दौरान काम नहीं कर रहा एक समस्या मिली। क्या आप मदद कर सकते हैं? – pkk

0

manual में वर्णित अनुसार आवेदन नियमों का उपयोग करें।

+0

एडीएमएड द्वारा प्रदान किया गया लिंक एक उत्कृष्ट और संभवतः सर्वोत्तम समाधान है। अपनी तालिका के _buildRules_ फ़ंक्शन में, एक नियम जोड़ें: '$ नियम-> जोड़ें ($ नियम-> isUnique (['UNIQUE_COLUMN'])); – Stephan

1

प्रमाणीकरण प्रदाता वस्तुएं, या कक्षा के नाम हो सकते हैं। यदि किसी वर्ग का नाम उपयोग किया जाता है तो विधियां स्थिर होनी चाहिए। CakePHP3 संदर्भ पुस्तक में Adding Validation Providers अनुभाग देखें

// Use a rule from the table provider 
$validator->add('title', 'unique', [ 
    'rule' => 'uniqueTitle', 
    'provider' => 'table' 
]); 

अधिक जानकारी के लिए: 'डिफ़ॉल्ट' के अलावा किसी अन्य प्रदाता का उपयोग करने के लिए, अपने नियम में provider कुंजी सेट कर लें।

3

आप अपनी मेज पर केक के ORM से नियमों का उपयोग करने के लिए है ...

अपने नाम स्थान के बाद अपने UsersTable के शीर्ष पर इस ऐड

use Cake\ORM\Rule\IsUnique; 

फिर अपने क्षेत्र के लिए लागू करने के लिए अपने नियम तैयार एक सार्वजनिक समारोह

public function buildRules(RulesChecker $rules){ 
     $rules->add($rules->isUnique(['email'])); 
     return $rules; 
    } 

में रखकर RULES

+०१२३५१६४१० बारे में अधिक जानकारी के लिए CakePHP दस्तावेज़ देखें
+0

इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए! – Andy

+0

अद्वितीय फ़ील्ड के लिए 'प्रदत्त मान अमान्य' के बजाय कस्टम संदेश कैसे दिखाया जाए? –

+0

मैं खुद को सही करता हूं, isUnique में केवल 2 पैरामीटर हैं, 'सार्वजनिक फ़ंक्शन isUnique (सरणी $ फ़ील्ड, $ message = null) {' तो आपका कोड इस तरह होगा: '$ नियम-> जोड़ें ($ नियम-> isUnique (['ईमेल'], 'आपका संदेश यहाँ!')); ' – Rod

संबंधित मुद्दे