web-dev-qa-db-fra.com

le message d'erreur de validation du formulaire Codeigniter ne s'affiche pas

mon erreur de validation de formulaire ne montre pas les messages dans le fichier de vue lorsque je charge le modèle et que je récupère les lignes des tables. voici mon code.

        $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);
    }

Ma forme fonctionne bien si j'exclus ces deux lignes

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

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

que mes validations montre une erreur. Je ne sais pas où est le problème?

8
Aneeq Tariq

Vous devriez utiliser la fonction validation_errors

<?php echo validation_errors(); ?>

Documentation 3.x: validation_errors

Documentation 2.x: form_validation

6
Bora

Essayez de le changer en ceci:

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

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

La première lettre du modèle est en majuscule conformément à la documentation de CI

Référence: http://ellislab.com/codeigniter/user-guide/general/models.html

Ceci est de leur page de référence: 

Les classes de modèles sont stockées dans votre dossier application/models /. Ils peuvent être imbriqués dans des sous-dossiers si vous souhaitez ce type d’organisation.

Le prototype de base d'une classe de modèle est le suivant:

class Model_name extends CI_Model {

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

Où nom_modèle est le nom de votre classe. Les noms de classe doivent avoir la première lettre en majuscule avec le reste du nom en minuscule. Assurez-vous que votre classe étend la classe Model de base.

Le nom du fichier sera une version minuscule de votre nom de classe. Par exemple, si votre classe est la suivante:

class User_model extends CI_Model {

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

}

Votre fichier sera ceci:

application/models/user_model.php Loading a Model

Vos modèles seront généralement chargés et appelés à partir des fonctions de votre contrôleur. Pour charger un modèle, vous utiliserez la fonction suivante:

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

Essaye ça....

    /* 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);
0
Giri Annamalai M