2013-09-02 7 views
8

Błąd sprawdzania poprawności formularza nie wyświetla wiadomości w widoku pliku, gdy ładuję model i pobiera wiersz z tabel. tutaj jest mój kod.komunikat o błędzie sprawdzania poprawności formularza kodu kodu nie wyświetla się

 $this->form_validation->set_rules('bookCategoryId', 'Book SubCategory Id', 'trim|required'); 
     $this->form_validation->set_rules('bookSubCategoryId', 'Book SubCategory Id', 'trim|required'); 
     $this->form_validation->set_rules('bookSubCategoryName', 'Book SubCategory Name', 'trim|required'); 
if ($this->form_validation->run() == FALSE) { 
     /* Load Model */ 
     $this->load->model('book_category'); 

     /* Get Categories */ 
     $template_data['mainContentData']['book_categories'] = $this->book_category->get_all_categories(); 

     /* set view page to be called */ 
     $template_data['mainContent'] = 'admin_add_book_subcategory'; 

     /* Load Template */ 
     $this->template($template_data); 
    } 

Moja forma działa dobrze, jeśli wykluczyć tych dwóch linia

 /* Load Model */ 
     $this->load->model('book_category'); 

     /* Get Categories */ 
     $template_data['mainContentData']['book_categories'] = $this->book_category->get_all_categories(); 

niż moje walidacji pokazuje błąd. Nie wiem, gdzie jest problem?

Odpowiedz

4

Należy użyć validation_errors funkcję

<?php echo validation_errors(); ?> 

Dokumentacja 3.x: validation_errors

Dokumentacja 2.x: form_validation

+0

I obejmują zarówno i ale nie działało, gdy zawieram $ this-> load-> model ('book_category'); w przeciwnym razie, jeśli wykluczyć, aby załadować model, to działa dobrze. –

+0

Proszę Zmień link, który nie działa. –

+0

@ankitsuthar Linki zaktualizowane, dziękuję – Bora

0

Spróbuj zmienić ją w ten sposób:

 $this->load->model('Book_category'); 

     /* Get Categories */ 
     $template_data['mainContentData']['book_categories'] = $this->Book_category->get_all_categories(); 

Models pierwsza litera według dokumentacji CI

referencyjny: http://ellislab.com/codeigniter/user-guide/general/models.html

To z ich stronie odniesienia:

klas modelu są przechowywane w aplikacji/modeli/folderu. Mogą one być zagnieżdżone w podfolderach, jeśli chcesz tego typu organizacji.

Podstawowym prototyp dla klasy modelu to:

class Model_name extends CI_Model { 

    function __construct() 
    { 
     parent::__construct(); 
    } 
} 

Gdzie MODEL_NAME to nazwa klasy. Nazwy klas muszą mieć pierwszą literę wielką, a pozostałe małe litery. Upewnij się, że klasa rozszerza podstawową klasę Model.

Nazwa pliku będzie małą wersją nazwy twojej klasy. Na przykład, jeśli klasa jest taka:

class User_model extends CI_Model { 

    function __construct() 
    { 
     parent::__construct(); 
    } 

} 

Plik będzie to:

application/models/user_model.php Loading a Model 

Twoje modele będą zazwyczaj ładowane i zadzwonił z poziomu funkcji kontrolera. Aby załadować model, użyjesz następującej funkcji:

$this->load->model('Model_name'); 
+0

Próbowałem również tego, ale mimo to błąd się nie wyświetlał! –

+0

Przepraszam, mój błąd. omyłkowo dziedziczę klasę mojego modelu za pomocą CI_controller Zamiast klasy CI_Model –

+0

Podczas tworzenia klasy nazwa modelu jest zamieniana tylko na wielką literę, a nie podczas uzyskiwania dostępu. –

0

Przepraszam Mój błąd. I błędnie odziedziczyć moją klasę modelu (book_category) z CI_controller Zamiast klasy CI_Model

0

Spróbuj to ....

/* Load Model */ 
    $this->load->model('book_category'); 

    /* Get Categories */ 
    $template_data['mainContentData']['book_categories'] = $this->book_category->get_all_categories(); 

    /* set view page to be called */ 
    $template_data['mainContent'] = 'admin_add_book_subcategory'; 


    $this->form_validation->set_rules('bookCategoryId', 'Book SubCategory Id', 'trim|required'); 
    $this->form_validation->set_rules('bookSubCategoryId', 'Book SubCategory Id', 'trim|required'); 
    $this->form_validation->set_rules('bookSubCategoryName', 'Book SubCategory Name', 'trim|required'); 

if ($this->form_validation->run()) { 

     print_r($_POST); exit; 
    }    
     /* Load Template */ 
    $this->template($template_data); 
Powiązane problemy