Bonjour,

Sur le conseil d'un ami webdev, je me suis rabattue sur CodeIgniter après m'être cassée toutes les dents sur Laravel.
Il s'agit de ma première expé avec un framework, et, si l'on peut soi-disant tout faire avec Laravel, ce fk ne me semble pas le plus adapté pour la néophyte-buse que je suis.

Malgré une doc pas mal foutue, je ne m'en sors carrément pas quand il s'agit d'afficher les données issues de ma DB.

La base de données est donc créée (pas par le biais du framework, j'ai créé mon SQL indépendamment).
Les paramètres de ma DB sont bien renseignés dans le fichier database.php
Et j'ai une table employes avec une entrée dedans.

Ne reste donc qu'à coder au niveau MVC... Mais tout ce que j'essaie est vain : j'enchaine les erreurs.

Pour afficher les données, voici ce que j'ai tenté de faire :

Au niveau du modèle (employe.php) :

<?php
class Employe extends CI_Model {
    function __construct()
    {
        // il parait que cette mention est obligatoire
        parent::__construct();
    }

    function viewEmploye() {
        $this->load->database();
        $query = $this->db->query('SELECT t_nom_employe, t_prenom_employe, t_commentaire_employe FROM employes');
        if($query->num_rows() > 0){
            foreach ($query->result_array() as $data) {
                echo $data't_nom_employe'];
                echo $data't_prenom_employe'];
                echo $data't_commentaire_employe'];
            } 
        } else { echo "Pas d'article."; }
            $query->free_result();
    }
}

Au niveau du contrôleur :

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Vue extends CI_Controller {
    public function vueEmploye() {
    $this->load->model('Employe');
    $data = array();
    $data'employesall'] = $this->employe->viewEmploye();
    $this->load->view('vue/test', $data);
    }
}

Au niveau de la vue :

<?php echo $employesall; ?>

Et donc l'erreur actuelle est :

( ! ) Fatal error: Call to a member function viewEmploye() on a non-object in C:\wamp\www\codeIgniter\application\controllers\vue.php on line 75
L'erreur est sans doute très parlante, mais... Je ne sais quand même pas comment y remédier !

Si ça vous parait complètement abracadabrant, c'est bien parce que je ne sais vraiment pas comment je dois faire, faute d'avoir trouvé sur le net un exemple qui stipule clairement quoi mettre dans quel fichier...

Merci d'avance pour votre aide...

2 réponses


Hello,

Je pense que ton problème est lié à la casse du nom de ton model.

A savoir, tu charges un model nommé avec E majuscule :

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

et tu appelles la fonction dans un model nommé avec un e minuscule :

$this->employe->viewEmploye();

--> Si tu essayes de charger ton model avec un e minuscule :

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

(Ou appeler la fonction du model avec E majuscule :p)

Regarde de ce côté de la doc : https://ellislab.com/codeigniter/user-guide/general/models.html#loading

Reka
Auteur

Merci Cookie.
C'était un problème, mais ce n'était visiblement pas ça qui posait problème.

J'ai finalement solutionné le problème en virant tout et en utilisant l'Active Record.
C'est donc un souci réglé, même si les raisons de son apparition m'intriguent encore ;)

Bonne soirée.