1. Contrôleur dans CI
Pour créer votre propre projet via CI, il vous suffit de copier le répertoire de l'application, le répertoire système et le fichier index.php du package compressé CI dans votre propre répertoire de projet. Modifiez entièrement votre propre code dans le répertoire de l'application. Ne modifiez pas le répertoire système lorsqu'une nouvelle version de CI sera publiée dans le futur, il vous suffira de remplacer le contenu du fichier système. problème dans la mise à niveau.
Une fois la copie terminée, ouvrez la page d'accueil du nouveau projet via l'URL : http://localhost:8080/testCodeIgniter/
A travers cette page, CI nous indique que la vue actuellement affichée est définie dans le fichier Welcome_message.php, et que le contrôleur actuellement utilisé est Welcome.php
Ouvrir
/application/controllers/Welcome.php
fichier, ce fichier n'a qu'une seule méthode d'indexation, qui charge la vue
welcome_message
[code]<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { /** * Index Page for this controller. * * Maps to the following URL * http://example.com/index.php/welcome * - or - * http://example.com/index.php/welcome/index * - or - * Since this controller is set as the default controller in * config/routes.php, it's displayed at http://example.com/ * * So any other public methods not prefixed with an underscore will * map to /index.php/welcome/<method_name> * @see http://codeigniter.com/user_guide/general/urls.html */ public function index() { $this->load->view('welcome_message'); } } ?>
afficher le fichier
welcome_message.php
Dans le répertoire
/application/views
accédez au contrôleur via l'URL en utilisant pathinfo, le le format est : protocole:// Nom de domaine/fichier d'entrée/contrôleur/nom de méthode, pour les méthodes privées, les méthodes protégées ou les méthodes commençant par un trait de soulignement, ne sont pas accessibles via pathinfo
Ajoutez une nouvelle méthode de test ci-dessus fichier de contrôle Welcome.php :
[code]public function test() { echo "这是Welcome控制器的test方法"; }
Vous pouvez appeler la méthode de test du contrôleur Welcome via
pathinfo(http://localhost:8080/testCodeIgniter/index.php/Welcome/test)
Créer un nouveau contrôleur utilisateur, comprenant un index
[code]<?php class User extends CI_Controller { public function index() { echo 'user---index'; } } ?>
Le contrôleur doit hériter de la classe CI_Controller
La méthode d'index du contrôleur utilisateur est accessible via pathinfo : http://localhost:8080/testCodeIgniter/index. php/user/index
Remarque : pathinfo est sensible à la casse Après avoir testé avec la version CI3.0, il n'est pas sensible à la casse
2. dans CI
Contrôleur Lors du chargement de la vue
CI charge la vue via le contrôleur, le nom du fichier de vue est index.php en appelant
[code]$this->load->view('/user/index');
À ce moment. , il n'est pas nécessaire d'ajouter un suffixe de fichier. Le chemin du fichier est basé sur l'application/Chemin relatif vers le répertoire des vues
Les fichiers d'affichage peuvent être du code natif PHP, aucun code HTML n'est requis
Plusieurs vues peuvent être chargées dans le contrôleur, et les vues peuvent être chargées séquentiellement de haut en bas en fonction de la structure du document
[code]<?php echo "这是user视图"; ?>
Le contrôleur alloue des variables
Deux méthodes :
1. Variable unique
[code]$this->load->vars('title', '这是标题');
2. Allouer un lot de variables
[code]$data['title'] = '这是标题'; $data['list'] = $list; $this->load->vars($data);
Pour ces deux méthodes d'allocation, vous pouvez utiliser
dans la vue$title
et
$list
pour accéder aux variables, voici juste des exemples, des projets réels, les données doivent être obtenues à partir du modèle.
3. Le nom du fichier modèle dans CI
doit être en minuscule, car dans
system/core/loader.php
的model方法中,会将传入的模型名称转成小写再去寻找对应的文件,但是类名必须是首字母大写并且拼装“
_model
”,拼装后的结果应与模型文件的文件名一致,只是首字母大写,例如:文件名是
user_model.php
,类名应该是
User_model
。
– user_model.php文件
[code]<?php class User_model extends CI_Model { function __construct() { parent::__construct(); } function getAllUser() { $this->load->database(); $result = $this->db->get('blog_user'); return $result->result(); } } ?>
在控制器中这样调用
[code]// 加载模型,通过第二个参数还可以指定别名,后面的代码使用别名访问 $this->load->model('user_model'); // 加载完成后,超级对象就生成了user_model属性,它是User_model类型的对象 $list = $this->user_model->getAllUser(); // 将数据传给视图 $this->load->view('user_view', array('list'=>$list));
原则上,除了关系表,每张实体表都应该对应一个模型
以上就是CodeIgniter学习笔记 Item2--CI中的MVC的内容,更多相关内容请关注PHP中文网(www.php.cn)!