FuelPHP - Modèles et base de données

Le modèle joue un rôle important dans le cadre Web FuelPHP. Il représente les entités commerciales de l'application. Ils sont soit fournis par les clients, soit extraits de la base de données backend, manipulés selon les règles métier et réintégrés dans la base de données. Découvrons les modèles et comment ils interagissent avec le système back-end dans ce chapitre.

Créer un modèle

Dans FuelPHP, model est simplement une classe PHP simple étendant la classe Model intégrée. Par défaut, les modèles peuvent être préfixés avec Model_ similaire aux contrôleurs et doivent être placés dansfuel/app/classes/model/dossier. Créons un modèle d'employé de base et étendons-le au fur et à mesure.

fuel / app / classes / model / employee.php

<?php 
   namespace Model; 

   class Model_Employee extends \Model { 
      public static function fetchAll() { 
         // Code to fetch employee from database 
      } 
   }

Accéder à un modèle

Une fois qu'un modèle est défini, il peut être librement utilisé dans n'importe quel contrôleur simplement en l'incluant dans le contrôleur comme suit.

use \Model\Employee; 

class Controller_Employee extends Controller { 
   public function action_index() { 
      $employees = Employee::fetchAll(); 
   } 
}

Aperçu de la base de données

FuelPHP fournit sa propre couche d'abstraction de base de données pour récupérer les données de la base de données. Il fournit à la fois un outil basé sur ORM de base et avancé. La boîte à outils de base se compose de classes basées sur DB, DBUtil et Query_Builer. La boîte à outils avancée est Orm. La boîte à outils Orm est dérivée de la boîte à outils de base et intégrée dans un package séparé.

Configuration de la base de données

FuelPHP sépare les paramètres de la base de données du fichier de configuration principal et le fichier est fuel/app/config/db.php. Il prend en charge un paramètre distinct pour chaque environnement. Actuellement, FuelPHP prend en charge les pilotes MySQL, MySQLi et PDO. Le réglage de l'échantillon est le suivant -

<?php  
   return array ( 
      'development' => array ( 
         'type'           => 'mysqli', 
         'connection'     => array ( 
            'hostname'    => 'localhost', 
            'port'        => '3306', 
            'database'    => 'tutorialspoint_fueldb', 
            'username'    => 'root', 
            'password'    => 'password', 
            'persistent'  => false, 
            'compress'    => false, 
         ), 
         
         'identifier'     => '`', 
         'table_prefix'   => '', 
         'charset'        => 'utf8', 
         'enable_cache'   => true, 
         'profiling'      => false, 
         'readonly'       => false, 
      ), 
   )

Boîte à outils basée sur la base de données

le DB classest l'option la plus simple pour accéder à la base de données depuis l'application. Il fournit des options pour créer la requête de base de données, l'exécuter sur la base de données cible et enfin récupérer le résultat. La classe DB interagit avec les classes suivantes et fournit une API de base de données complète.

  • Database_Connection - Singleton et classe principale pour interagir avec la base de données

  • Database_Query - Base, classe concrète pour exécuter la requête SQL et récupérer le résultat

  • Database_Query_Builder - Classe abstraite de base pour créer une requête SQL

  • Database_Query_Builder_Join - Classe pour créer des jointures SQL

  • Database_Query_Builder_Where - Classe abstraite pour créer des conditions de requête SQL

  • Database_Query_Builder_Select - Classe concrète pour créer une requête de sélection SQL

  • Database_Query_Builder_Insert - Classe abstraite pour créer une requête d'insertion SQL

  • Database_Query_Builder_Update - Classe abstraite pour créer une requête de mise à jour SQL

  • Database_Query_Builder_Delete - Classe abstraite pour créer une requête de suppression SQL

Le diagramme suivant décrit la relation entre les classes et les méthodes fournies par les classes.

API DB

Apprenons les méthodes les plus importantes disponibles dans la classe DB dans cette section.

exemple

  • Purpose- Crée et renvoie la nouvelle instance Database_Connection .

  • Parameter -

    • $db - Nom de connexion à la base de données défini dans le fichier de configuration, facultatif.

  • Returns- Renvoie l' objet Database_Connection

Par exemple,

$db = DB::instance(); 
$db = DB::instance('test');

requete

  • Purpose - Préparez l'instruction SQL fournie et renvoie l'objet Database_Query, qui peut être utilisé pour insérer, mettre à jour, supprimer ou récupérer les données de la base de données.

  • Parameter -

    • $query - Instruction SQL, peut contenir des espaces réservés;

    • $type - Type SQL, facultatif (DB :: SELECT, DB :: INSERT, DB :: UPDATE et DB :: DELETE)

  • Returns- Renvoie l' objet Database_Query

Par exemple,

$query = DB::query('SELECT * FROM 'employees'');

last_query

  • Purpose - Pour obtenir la dernière requête exécutée

  • Parameter - Aucun

  • Returns - Renvoie la dernière requête exécutée

Par exemple,

$employees = DB::Select('Select * from 'employee''); 
$sql = DB::last_query();

sélectionner

  • Purpose - Générer la partie sélectionnée de la requête

  • Parameter -

    • $columns - Liste des noms de colonnes de la base de données

  • Returns - Renvoie l'objet Database_Query_Builder_Select

Par exemple,

$query = DB::select();              // Select *
$query = DB::select('id', 'name'); // Select id, name

select_array (DB)

C'est similaire à select sauf que nous pouvons envoyer des colonnes sous forme de tableau.

$query = DB::select_array(array('id', 'name')); // Select id, name

insérer

  • Purpose - Générer la partie insert de la requête

  • Parameter -

    • $table_name - nom de la table de base de données;

    • $columns - tableau de colonnes de table

  • Returns - Renvoie l'objet Database_Query_Builder_Insert

Par exemple,

$query = DB::insert('employee');  // Insert into employee 
$query = DB::insert('employee', array('id', 'name')); // Insert into employee (id, name)

mettre à jour

  • Purpose - Générer la partie mise à jour de la requête

  • Parameter -

    • $table_name - nom de la table de base de données

  • Returns - Renvoie l'objet Database_Query_Builder_Update

Par exemple,

$query = DB::update('employee'); // update `employee`

effacer

  • Purpose - Générer la partie suppression de la requête

  • Parameter -

    • $table_name - nom de la table de base de données

  • Returns - Renvoie l'objet Database_Query_Builder_Delete

Par exemple

$query = DB::delete('employee');  // delete from 'employee'

API de requête

Database_Queryfournit une option pour définir la connexion à la base de données, exécuter la requête et récupérer le résultat sous forme de tableau ou d'objet associatif. Voyons les méthodes fournies par la classe Database_Query.

set_connection

  • Purpose - Pour définir la base de données (détails de connexion à la base de données) sur laquelle exécuter la requête

  • Parameter - $ db - nom de connexion à la base de données

  • Returns- Renvoie l' objet Database_Query

Par exemple,

$query = DB::query('DELETE * FROM employee', DB::DELETE); 
$query->set_connection('2nd-db');

param

  • Purpose - Pour définir la valeur du paramètre défini dans l'objet Query

  • Parameter -

    • $param - nom du paramètre;

    • $value - valeur du paramètre

  • Returns- Renvoie l' objet Database_Query

Par exemple,

// set some variables
$table = 'employee';
$id = 1;
$name = 'Jon';

// don't use
$query = DB::query('SELECT * FROM '.$table.'. WHERE id = '.$id.' AND name = "'.$name.'"');

// but use
$query = DB::query('SELECT * FROM :tablename WHERE id = :id AND name = :name');
$query->param('tablename', 'employee');
$query->param('id', $id);
$query->param('name', $name);

Méthodes similaires

parameters est un objet similaire sauf qu'il offre l'option de donner plusieurs valeurs à la fois.

$query->parameters (array( 
   'tablename' => $table, 
   'id' => $id, 
   'name' => $name 
});

lier

  • Purpose - Pour définir une variable sur le paramètre défini dans l'objet Query

  • Parameter -

    • $param - nom du paramètre

    • $var - la variable à laquelle lier le paramètre

  • Returns- Renvoie l' objet Database_Query

Par exemple,

// bind a query parameter 
$table = 'employee'; 
$query = DB::query('DELETE * FROM :tablename', DB::DELETE); 
$query->bind('tablename', $table);  

// update the variable 
$table = 'employee_salary'; 

// DELETE * FROM `employee_salary`; 
$sql = $query->compile();

compiler

  • Purpose - Pour compiler l'objet de requête défini en requête SQL

  • Parameter -

    • $db - chaîne de connexion, en option

  • Returns -

Par exemple,

// assign a value to a query parameter 
$table = 'employee'; 
$query = DB::query('DELETE * FROM :tablename', DB::DELETE); 
$query->param('tablename', $table);

// compile the query, returns: DELETE * FROM employee 
$sql = $query->compile();

exécuter

  • Purpose - Pour exécuter la requête définie dans l'objet Query et renvoyer le résultat

  • Parameter -

    • $db - nom de connexion à la base de données

  • Returns - Renvoie le résultat

Par exemple,

// assign a value to a query parameter 
$table = 'employee'; 
$query = DB::query('DELETE * FROM :tablename', DB::DELETE); 
$query->param('tablename', $table);  

// execute the query 
$query->execute();

as_assoc

  • Purpose - Pour définir le type de retour comme tableau associatif au lieu d'objets

  • Parameter - Aucun

  • Returns - Renvoie l'objet courant

Par exemple,

$query = DB::query('SELECT * FROM employee', DB::SELECT); 
$result = $query->as_assoc()->execute(); 
foreach ($result as $row) { 
   echo $row['id']; 
}

as_object

  • Purpose - Pour définir le type de retour comme objet au lieu d'un tableau associatif

  • Parameter - Aucun

  • Returns - Renvoie l'objet courant

Par exemple,

$query = DB::query('SELECT * FROM employee', DB::SELECT); 
$result = $query->as_object()->execute(); 
foreach ($result as $row) { 
   echo $row->id; 
}  

// have ORM model objects return instead 
$result = $query->as_object('Model_Employee')->execute();

API Query Builder

Les classes basées sur Query Builder (Query_Builder) fournissent des options pour créer des requêtes SQL de manière dynamique. Il comporte quatre classes, chacune permettant de sélectionner (Query_Builder_Select) , d'insérer (Query_Builder_Insert) , de mettre à jour (Query_Builder_Update) et de supprimer (Query_Builder_Delete) les requêtes. Ces classes sont dérivées de la classe Query_Builder_Where (option pour générer des conditions), elle-même dérivée de Query_Builder , base de toutes les classes.

Regardons les méthodes fournies par la classe Query_Builder.

sélectionner

  • Purpose - Pour générer les colonnes de requêtes de sélection.

  • Parameter -

    • $columns - liste des colonnes, facultative

  • Returns - Renvoie l'instance actuelle

Par exemple,

$query = DB::select('name')  // select `name` 
$query = DB::select(array('first_name', 'name')) // select `first_name` as `name`

de

  • Purpose - Pour générer les détails du tableau des requêtes sélectionnées

  • Parameter -

    • $tables - liste des tableaux

  • Returns - Renvoie l'instance actuelle

Par exemple,

$query = DB::select('name')->from('employee') // select `name` from `employee`

  • Purpose - Pour générer les conditions de sélection, d'insertion et de mise à jour des requêtes

  • Parameters -

    • $column - nom de colonne ou tableau ($ colonne, $ alias);

    • $op - opérateurs logiques, =,! =, IN, BETWEEN et LIKE, facultatifs;

    • $value - valeur de la colonne

  • Returns - Renvoie l'instance actuelle

Par exemple,

$query = DB::select('name')->from('employee')  
$query = $query->where('name', '=', 'Jon'); 
// select `name` from `employee` where `name` = `Jon`;

Méthodes similaires

Les méthodes similaires sont where_open (), and_where_open (), or_where_open (), where_close (), and_where_close (), or_where_close (). Elles sont similaires aux méthodes where () sauf qu'elles ajoutent des mots clés et des crochets supplémentaires autour des conditions. Voici un exemple de code.

$query = DB::select('*')->from('employee');  
$query->where('email', 'like', '%@gmail.com'); 
$query->or_where_open(); 
$query->where('name', 'Jon'); 
$query->and_where('surname', 'Peter');
$query->or_where_close();  
// SELECT * FROM `employee` WHERE `email` LIKE "%gmail.com" OR 
   (`name` = "Jon" AND `surname` = "Peter")

joindre

  • Purpose - Pour générer les jointures de table des requêtes sélectionnées

  • Parameters -

    • $table - nom de table ou tableau ($ table, $ alias);

    • $type - type de jointure (GAUCHE, DROITE, INTÉRIEUR, etc.,)

  • Returns - Renvoie l'instance actuelle

Exemple

$query = DB::select('name')->from('employee')->join('employee_salary') 
// select `name` from `employee` JOIN `employee_salary`

sur

  • Purpose - Pour générer la condition des jointures dans les requêtes sélectionnées

  • Parameters -

    • $c1 - nom de table ou nom de table avec alias dans le tableau;

    • $op - opérateur logique;

    • $c2 - nom de table ou nom de table avec alias dans le tableau

  • Returns - Renvoie l'instance actuelle

Par exemple,

$query = DB::select('name')->from('employee')->join('employee_salary') 
$query = $query->on('employee.employee_id', '=', 'employee_salary.employee_id') 
// select `name` from `employee` JOIN `employee_salary` on 
// `employee.employee_id` = `employee_salary.employee_id`

Méthodes similaires

Les méthodes associées sont and_on () et or_on (). Ils sont similaires à on (), sauf qu'ils ajoutent des mots clés et des crochets supplémentaires autour des jointures.

par groupe

  • Purpose - Pour générer des requêtes group by

  • Parameter - $columns - Nom de la colonne par laquelle regrouper le résultat

  • Returns - Renvoie l'instance actuelle

Par exemple,

$query = DB::select('name')->from('employee')  
$query = $query->group_by('name'); 
// select `name` from `employee` group by `name`

ayant

  • Purpose - Pour générer le groupe par conditions de requêtes SQL

  • Parameter - $column - nom de colonne ou tableau ($ colonne, $ alias); $op - opérateurs logiques, =,! =, IN, BETWEEN et LIKE, facultatifs; $value - valeur de la colonne

  • Returns - Renvoie l'instance actuelle

Exemple

$query = DB::select('name')->from('employee')
$query = $query->group_by('name');
$query = $query->having('name', '!=', 'Jon');
// select `name` from `employee` group by `name` having `name` != `Jon`

Méthodes similaires

Les méthodes similaires sont had_open (), and_having_open (), or_having_open (), having_close (), and_having_close () ou_having_close (). Elles sont similaires aux méthodes Have (), sauf qu'elles ajoutent des mots clés et des crochets supplémentaires autour des conditions.

réinitialiser

  • Purpose - Pour réinitialiser la requête

  • Parameter - Aucun

  • Returns - Renvoie l'instance actuelle

Par exemple,

$query = DB::select('name')->from('employee')  
$query->reset() 
$query = DB::select('name')->from('employee_salary') 
// select `name` from `employee_salary`

Classe DBUtil

La classe DBUtil fournit une option pour gérer et exécuter des opérations de base de données de routine. Certaines des méthodes importantes sont les suivantes -

  • set_connection - Définit la connexion par défaut
DBUtil::set_connection('new_database');
  • create_database - Crée une base de données.
DBUtil::create_database('my_database');
  • drop_database - Supprime une base de données.
DBUtil::drop_database('my_database');
  • table_exists - Vérifie si une table donnée existe.
if(DBUtil::table_exists('my_table')) { 
   // Table exists 
} else { 
   // Table does NOT exist, create it! 
}
  • drop_table - Supprime une table.
DBUtil::drop_table('my_table');
  • create_table - Crée une table.
\DBUtil::create_table ( 
   'users', 
   array ( 
      'id' => array('type' => 'int', 'auto_increment' => true), 
      'name' => array('type' => 'text'), 
   ), 
);

Boîte à outils Orm

FuelPHP fournit une couche de base de données avancée utilisant le concept ORM basé sur le populaire Active record pattern. La boîte à outils est incluse dans l'application mais n'est pas configurée par défaut. Il est fourni sous forme de package et le nom du package est orm. Nous pouvons ajouter la configuration suivante dans le fichier de configuration principal,fuel/app/config/config.php pour charger la boîte à outils orm.

'always_load' => array ( 
   'packages' => array (
      'orm', 
   ), 
),

Créer des modèles

Orm fournit la classe de modèle de base Orm \ Model. Nous devons étendre nos modèles avec le modèle orm pour utiliser les fonctionnalités ORM. Voici un exemple de code.

class Model_Employee extends Orm\Model {}

Configuration

Orm fournit un ensemble de paramètres pour configurer le modèle pour utiliser les fonctionnalités ORM. Ils sont les suivants -

connection- Définissez une propriété _connection statique dans le modèle pour spécifier le nom de la connexion.

class Model_Employee extends Orm\Model { 
   protected static $_connection = "production"; 
}

table name- Définissez une propriété statique _table_name dans le modèle pour spécifier le nom de table de la table backend.

class Model_Employee extends Orm\Model { 
   protected static $_table_name = 'employee'; 
}

primary key- Définissez une propriété statique _primary_key dans le modèle pour spécifier la clé primaire de la table backend.

class Model_Employee extends Orm\Model { 
   protected static $_primary_key = array('id'); 
}

Columns- Définissez une propriété _properties statique dans le modèle pour spécifier les colonnes de la table principale. Il prend en charge data_type, label, validation, elememts de formulaire, etc.

class Model_Employee extends Orm\Model { 
   protected static $_properties = array ( 
      'id',  
      'name' => array ( 
         'data_type' => 'varchar', 
         'label' => 'Employee Name', 
         'validation' => array ( 
            'required',  
            'min_length' => array(3),  
            'max_length' > array(80) 
         ), 
         
         'form' => array ( 
            'type' => 'text' 
         ), 
      ),  

      'age' => array ( 
         'data_type' => 'int', 
         'label' => 'Employee Age', 
         'validation' => array ( 
            'required',  
         ),  
         
         'form' => array ( 
            'type' => 'text' 
         ), 
      ),  
   ); 
}

Conditions- Définissez une propriété _conditions statique pour définir les conditions et classer par options.

class Model_Employee extends Orm\Model { 
   protected static $_conditions = array ( 
      'order_by' => array('id' => 'desc'), 
      'where' => array ( 
         array('is_active', > true), 
      ), 
   ); 
}

Observers- Orm fournit un système d'événements basé sur l'observateur pour ajouter un comportement à des événements spécifiques. Pour ajouter un comportement, définissez d'abord une propriété _observers dans le modèle. Ensuite, définissez le comportement en tant que classe et définissez-le dans la propriété _observers avec les événements. Si aucun événement n'est spécifié, le comportement sera appelé pour tous les événements. Nous pouvons également spécifier plusieurs comportements.

class Model_Employee { 
   protected static $_observers = array ( 
      'example',  // will call Observer_Example class for all events 
      'Orm\\Observer_CreatedOn' => array ( 
         'events' => array('before_insert'),  
         // will only call Orm\Observer_CreatedOn at before_insert event 
      ) 
   ); 
}

Créer

Une fois que nous avons configuré le modèle, nous pouvons commencer à utiliser les méthodes immédiatement. ORM fournit une sauvegarde méthode pour enregistrer l'objet dans la base de données. Nous pouvons définir les données en utilisant les propriétés configurées comme suit -

// option 1 
$new = new Model_Employee(); 
$new->name = 'Jon'; 
$new->save();  

// option 2, use forge instead of new 
$new = Model_Employee::forge();
$new->name = 'Jon'; 
$new->save();  

// option 3, use array for properties 
$props = array('name' => 'Jon'); 
$new = Model_Employee::forge($props); 
$new>save();

Lis

Orm fournit une méthode, find pour récupérer les données de la base de données et se lier à l'objet. La méthode find fonctionne en fonction du paramètre d'entrée. Regardons les différentes options -

by primary key - La spécification de la clé primaire renvoie l'enregistrement en faisant correspondre la clé primaire de la table configurée.

$employee = Model_Employee::find(1);

first / last record- Spécifier «premier» ou «dernier» récupérera respectivement le premier ou le dernier enregistrement. Nous pouvons également passer la commande par option.

$entry = Model_Employee::find('first'); 
$entry = Model_Article::find('last', array('order_by' => 'id'));

All- Spécifier «tous» récupérera tous les enregistrements de la table configurée. Nous pouvons spécifier une commande par option ainsi que des conditions.

$entry = Model_Employee::find('all');  
$entry = Model_Article::find ('all', array ( 
   'where' => array ( 
      array ('name', 'Jon'), 
   ), 
   'order_by' => array ('id' => 'desc'), 
));

Nous pouvons utiliser l'API de requête de la boîte à outils de base de données de base avec le modèle pour l'option de recherche avancée comme suit.

$query = Model_Employee::query()->where('category_id', 1)->order_by('date', 'desc');
$number_of_employees = $query->count(); 
$latest_employee = $query->max('id'); 
$young_employee = $query->min('age'); 
$newest_employee = $query->get_one(); 
$employees = $query->limit(15)->get();

Mettre à jour

La mise à jour du modèle est identique à la création, sauf qu'au lieu de créer un nouveau modèle, récupérez simplement le modèle à mettre à jour à l'aide de la méthode find, mettez à jour la propriété, puis appelez la méthode save comme suit.

$entry = Model_Employee:find(4);
$entry->name = 'Peter'; 
$entry->save();

Effacer

Orm fournit une méthode de suppression pour supprimer le modèle. Récupérez simplement l'objet et appelez la méthode de suppression.

$entry = Model_Employee:find(4); 
$entry->delete();

Exemple de travail

Créons un exemple de travail dans ce chapitre pour comprendre le modèle et la base de données.

Créer une base de données

Créez une nouvelle base de données sur le serveur MySQL à l'aide de la commande suivante.

create database tutorialspoint_fueldb

Ensuite, créez une table dans la base de données à l'aide de la commande suivante.

create table employee(id int primary key, name varchar(20), age int not null);

Configurer la base de données

Configurons la base de données à l'aide du fichier de configuration de la base de données, * fuel / app / config / db.php. Ajoutez les modifications suivantes pour connecter le serveur MySQL.

<?php  
   return array ( 
      'development' => array ( 
         'type'           => 'mysqli', 
         'connection'     => array ( 
            'hostname'       => 'localhost', 
            'port'           => '3306', 
            'database'       => 'tutorialspoint_fueldb', 
            'username'       => 'root', 
            'password'       => 'pass', 
            'persistent'     => false, 
            'compress'       => false, 
         ), 
         
         'identifier'     => '`', 
         'table_prefix'   => '', 
         'charset'        => 'utf8', 
         'enable_cache'   => true, 
         'profiling'      => false, 
         'readonly'       => false, 
      ),  
      
      'production' => array ( 
         'type'           => 'mysqli', 
         'connection'     => array ( 
            'hostname'       => 'localhost', 
            'port'           => '3306', 
            'database'       => 'tutorialspoint_fueldb', 
            'username'       => 'root', 
            'password'       => 'pass', 
            'persistent'     => false, 
            'compress'       => false, 
         ), 
         
         'identifier'     => '`', 
         'table_prefix'   => '', 
         'charset'        => 'utf8', 
         'enable_cache'   => true, 
         'profiling'      => false, 
         'readonly'       => false, 
      ), 
   );

Inclure le package ORM

Mettre à jour le fichier de configuration principal, fuel/app/config/config.php pour inclure le package ORM en ajoutant la configuration suivante.

'always_load' => array ( 
   'packages' => array ( 
      'orm' 
   ), 
),

Désormais, ORM est activé dans votre application

Créer un modèle d'employé

Créer un nouveau modèle, Employé sous le dossier modèle “fuel/app/classes/model”. Il est défini comme suit.

Employee.php

<?php  
   class Model_Employee extends Orm\Model { 
      protected static $_connection = 'production'; 
      protected static $_table_name = 'employee'; 
      protected static $_primary_key = array('id'); 
      protected static $_properties = array ( 
         'id',  
         'name' => array ( 
            'data_type' => 'varchar', 
            'label' => 'Employee Name', 
            'form' => array (
               'type' => 'text' 
            ), 
         ),  
         
         'age' => array ( 
            'data_type' => 'int', 
            'label' => 'Employee Age', 
            'form' => array ( 
               'type' => 'text' 
            ), 
         ),  
      ); 
   }

Créer une action

Créer une nouvelle action, action_model dans le contrôleur des employés situé à fuel/app/classes/controller/employee.php comme suit.

class Controller_Employee extends Controller { 
   public function action_model() { 
      
      // db based sql command to delete all employees 
      $query = db::query('delete from `employee`'); 
      $query->execute('production');  
      
      // orm based query to add new employees 
      $model = new model_employee(); 
      $model->name = "john"; 
      $model->age = 25; 
      $model->save();  
      $model = new model_employee(); 
      $model->name = "peter"; 
      $model->age = 20; 
      $model->save(); 
      
      // orm based query to fetch all employee data 
      $data = array(); 
      $data['emps'] = model_employee::find('all');  
      return response::forge(view::forge('employee/model', $data)); 
   } 
}

Créer une vue

Maintenant, créez un fichier de vue model.php situé à “fuel/app/views/employee”. Ajoutez les modifications suivantes dans le fichier.

<ul> 
   <?php 
      foreach($emps as $emp) {  
   ?> 
   <li><?php echo $emp['name']; ?></li> 
   
   <?php 
   } 
   ?> 
</ul>

Maintenant, demandez l'URL, http://localhost:8080/employee/model et cela produira le résultat suivant.

Résultat