1. Controller in CI
Um Ihr eigenes Projekt über CI zu erstellen, müssen Sie nur das Anwendungsverzeichnis, das Systemverzeichnis und die Datei index.php im CI-komprimierten Paket in Ihr eigenes Projektverzeichnis kopieren. Bearbeiten Sie Ihren eigenen Code vollständig im Anwendungsverzeichnis. Wenn in Zukunft eine neue Version von CI veröffentlicht wird, müssen Sie nur den Inhalt der Systemdatei ersetzen Probleme beim Upgrade.
Nachdem der Kopiervorgang abgeschlossen ist, öffnen Sie die Homepage des neuen Projekts über die URL: http://localhost:8080/testCodeIgniter/
Über diese Seite teilt uns CI mit, dass die aktuell angezeigte Ansicht in der Datei „Welcome_message.php“ definiert ist und der aktuell verwendete Controller „Welcome.php“ ist
Öffnen
/application/controllers/Welcome.php
Datei, diese Datei hat nur eine Indexmethode, die die Ansicht
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'); } } ?>
lädt Datei anzeigen
welcome_message.php
Im Verzeichnis
/application/views
greifen Sie über die URL mit pathinfo auf den Controller zu Das Format lautet: Protokoll:// Domänenname/Eintragsdatei/Controller/Methodenname, für private Methoden, geschützte Methoden oder Methoden, die mit einem Unterstrich beginnen, kann nicht über pathinfo zugegriffen werden
Fügen Sie oben eine neue Testmethode hinzu Steuerdatei Welcome.php:
[code]public function test() { echo "这是Welcome控制器的test方法"; }
Sie können die Testmethode des Welcome-Controllers aufrufen, indem Sie
pathinfo(http://localhost:8080/testCodeIgniter/index.php/Welcome/test)
einen neuen Benutzercontroller erstellen, einschließlich eines Index Methode
[code]<?php class User extends CI_Controller { public function index() { echo 'user---index'; } } ?>
Der Controller muss von der CI_Controller-Klasse erben
Auf die Indexmethode des Benutzercontrollers kann über pathinfo zugegriffen werden: http://localhost:8080/testCodeIgniter/index. php/user/index
Hinweis: Bei Pathinfo wird die Groß-/Kleinschreibung beachtet. Nach dem Testen mit der CI3.0-Version wird die Groß-/Kleinschreibung nicht beachtet.
2 in CI
Controller Beim Laden der Ansicht
CI lädt die Ansicht über den Controller, der Ansichtsdateiname lautet index.php, indem
[code]$this->load->view('/user/index');
aufgerufen wird Es ist nicht erforderlich, ein Dateisuffix hinzuzufügen. Der Dateipfad basiert auf der Anwendung/dem relativen Pfad zum Ansichtsverzeichnis.
Ansichtsdateien können nativer PHP-Code sein, es ist kein HTML-Code erforderlich
In den Controller können mehrere Ansichten geladen werden, und Ansichten können entsprechend der Struktur des Dokuments nacheinander von oben nach unten geladen werden
[code]<?php echo "这是user视图"; ?>
Controller weist Variablen zu
Zwei Methoden:
1. Einzelne Variable
[code]$this->load->vars('title', '这是标题');
2. Zuweisen eines Stapels von Variablen
[code]$data['title'] = '这是标题'; $data['list'] = $list; $this->load->vars($data);
Für diese beiden Zuordnungsmethoden können Sie mit
in der Ansicht$title
und
$list
auf Variablen zugreifen, Hier sind nur Beispiele, reale Projekte, Daten sollten aus dem Modell bezogen werden.
3 Der Name der Modelldatei in CI
muss klein geschrieben werden, da in
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)!