2013-01-22 19 views
8

मैं अपने कोडइग्निटर रूपों में कुछ कस्टम त्रुटि संदेश बनाना चाहता हूं। मैं हालांकि मैं यह काम नहीं कर प्राप्त कर सकते हैंकोडइग्निटर फॉर्म सत्यापन का उपयोग कर कस्टम त्रुटि संदेश

$this->form_validation->set_message('is_unique[users.username]', 'The username is already taken');

का उपयोग कर की कोशिश की है।

form_validation_lang.php फ़ाइल का संपादन के रूप में is_unique ई-मेल पहले से ही मेल के लिए पंजीकृत है यूज़रनेम पहले से ही उपयोगकर्ता नाम के लिए लिया जाता है, और हो जाएगा, काफी अच्छा नहीं है।

मैं यह कस्टम त्रुटि संदेश कैसे बना सकता हूं?

$this->form_validation->set_message('is_unique[users.username]', 'The username is already taken'); 

// Check if username has changed 
if ($this->input->post('username') !== $user->username) { 
    $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]|max_length[20]|is_unique[users.username]'); 
} 
+1

कोडनिर्देशक दस्तावेज़ साइट पर फॉर्म सत्यापन उदाहरण देखें .. http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#callbacks – MrFoh

+0

मेरे द्वारा पोस्ट किया गया कोड उदाहरण दस्तावेज़ों के समान है: ' $ this-> form_validation-> set_message ('आवश्यक', 'आपका कस्टम संदेश यहां'); ' –

उत्तर

18

ऐसा करने का अधिकार रास्ते के लिए काम किया एक स्ट्रिंग प्रारूप

$this->form_validation->set_message('is_unique', 'The %s is already taken'); 

गुजर तो कर रहा है, तो केवल हम कर सकते हैं "This Username is already taken" या "This Email is already taken" तरह संदेश प्राप्त करने में सक्षम। बेहतर

+0

क्या होगा यदि मैं वास्तविक इनपुट मान के साथ '% s' को प्रतिस्थापित करना चाहता हूं? पूर्व। 'फू' पहले ही लिया जा चुका है ... – Jorz

-1

आप फ़ील्ड का नाम और न शासन का उल्लेख करने की जरूरत है:

यहाँ मेरी कोड से एक टुकड़ा है।

दस्तावेज़ थोड़ा उलझन में हैं कि वे इसे 'आवश्यक' भी नाम देते हैं।

तो तुम $this->form_validation->set_message('is_unique[users.username]', 'The username is already taken');

है जहां यह

$this->form_validation->set_message('username', 'The username is already taken');

आशा इस मदद करता है होना चाहिए!

+0

यह काम नहीं करता है :-) –

+0

उस क्षेत्र के लिए आपका नियम क्या है? –

+0

क्या आप अपना पूरा फ़ंक्शन पोस्ट कर सकते हैं जो फ़ॉर्म सत्यापन को संभालता है? –

2

यह मैं

$this->form_validation->set_message('is_unique', 'The username is already taken'); 
2

यह आप इस तरह का उपयोग करें:

$this->form_validation->set_message('is_unique', 'The %s is already taken'); 

form_validation लेबल क्षेत्र के लिए seted के साथ बदलता %s

आशा है कि इससे मदद मिलती है!

0

आप सत्यापन की जाँच $err चर करने के लिए अपने कस्टम संदेश सेट करने के बाद $this->form_validation->run() == true

if(YOUR_CONDITION){ 
    $this->form_validation->run(); 
    $err = validation_errors(); 
    $err = $err. '<p>Custom validation error message</p>'. PHP_EOL; 
    $data['err'] = $err; 
    $this->load->view('viewname', $data) 
} 
else if ($this->form_validation->run() == true) { 
     #code... 
} 
else.. 

उपयोग करने के बाद validation_errors() स्ट्रिंग के लिए अपने कस्टम संदेश जोड़ें, अपने दृश्य पर इसे प्रिंट कर सकते हैं।

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