Home  >  Article  >  php教程  >  CodeIgniter study notes Item2--MVC in CI

CodeIgniter study notes Item2--MVC in CI

黄舟
黄舟Original
2016-12-29 10:02:321360browse

1.Controller in CI

To create your own project through CI, you only need to copy the application directory, system directory and index.php file in the CI compressed package to your own project directory. . Edit your own code entirely in the application directory, and do not modify the system directory. When a new version of CI is released in the future, you only need to replace the contents of the system file. If you modify it yourself, you will encounter trouble in the upgrade.

CodeIgniter study notes Item2--MVC in CI

After the copy is completed, open the homepage of the new project through the URL: http://localhost:8080/testCodeIgniter/

CodeIgniter study notes Item2--MVC in CI

Through this page, CI prompts us that the view currently displayed is defined in the welcome_message.php file, and the controller currently used is Welcome.php

Open

/application/controllers/Welcome.php

File, this file has only one index method, and the view is loaded in the method

welcome_message

[code]<?php
defined(&#39;BASEPATH&#39;) OR exit(&#39;No direct script access allowed&#39;);

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&#39;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(&#39;welcome_message&#39;);
    }
}
?>

View file

welcome_message.php

In the

/application/views

directory

use pathinfo to access the controller through URL, the format is: protocol://domain name/entry file/controller/method name , For private methods, protected methods or methods starting with an underscore, they cannot be accessed through pathinfo

Add a new test method in the above control file Welcome.php:

[code]public function test()
{
    echo "这是Welcome控制器的test方法";
}

Through

pathinfo(http://localhost:8080/testCodeIgniter/index.php/Welcome/test)

You can call the test method of the Welcome controller

Create a new user controller, including an index method

[code]<?php
class User extends CI_Controller 
{
    public function index()
    {
        echo &#39;user---index&#39;;
    }
}
?>

The controller needs to inherit from the CI_Controller class

Pass pathinfo can access the index method of the user controller: http://localhost:8080/testCodeIgniter/index.php/user/index

CodeIgniter study notes Item2--MVC in CI

Note: pathinfo is case-sensitive. After testing with the CI3.0 version, it is case-insensitive

2. Views in CI

Controller loads the view

When CI loads the view through the controller, By calling

[code]$this->load->view(&#39;/user/index&#39;);

The view file name is index.php. At this time, there is no need to add a file suffix. The file path is a relative path based on the application/views directory.

The view file can be PHP native code. , no HTML code is required

Multiple views can be loaded in the controller, and the views can be loaded sequentially from top to bottom according to the structure of the document

[code]<?php
    echo "这是user视图";
?>

Controller allocation variables

Two methods:

1. Single variable

[code]$this->load->vars(&#39;title&#39;, &#39;这是标题&#39;);


##2. Allocate a batch of variables

[code]$data[&#39;title&#39;] = &#39;这是标题&#39;;
$data[&#39;list&#39;] = $list;
$this->load->vars($data);

For both allocation methods, you can use

$title
and

$list

to access the variables in the view, here Just an example, a real project, the data should be obtained from the model.



3. Model in CI

The name of the model file must be lowercase, because 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(&#39;blog_user&#39;);
            return $result->result();
        }
    }
?>

在控制器中这样调用

[code]// 加载模型,通过第二个参数还可以指定别名,后面的代码使用别名访问 
$this->load->model(&#39;user_model&#39;);
// 加载完成后,超级对象就生成了user_model属性,它是User_model类型的对象
$list = $this->user_model->getAllUser();
// 将数据传给视图
$this->load->view(&#39;user_view&#39;, array(&#39;list&#39;=>$list));

原则上,除了关系表,每张实体表都应该对应一个模型

 以上就是CodeIgniter学习笔记 Item2--CI中的MVC的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn