Home > php教程 > PHP开发 > CodeIgniter study notes Item2--MVC in CI

CodeIgniter study notes Item2--MVC in CI

黄舟
Release: 2016-12-29 10:02:32
Original
1379 people have browsed it

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
Copy after login

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

welcome_message
Copy after login

[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;);
    }
}
?>
Copy after login

View file

welcome_message.php
Copy after login

In the

/application/views
Copy after login

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方法";
}
Copy after login

Through

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

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;;
    }
}
?>
Copy after login

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;);
Copy after login

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视图";
?>
Copy after login

Controller allocation variables

Two methods:

1. Single variable

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


##2. Allocate a batch of variables

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

For both allocation methods, you can use

$title
Copy after login
and

$list
Copy after login

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
Copy after login

的model方法中,会将传入的模型名称转成小写再去寻找对应的文件,但是类名必须是首字母大写并且拼装“

_model
Copy after login

”,拼装后的结果应与模型文件的文件名一致,只是首字母大写,例如:文件名是

user_model.php
Copy after login

,类名应该是

User_model
Copy after login



– 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();
        }
    }
?>
Copy after login

在控制器中这样调用

[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));
Copy after login

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

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


Related labels:
source:php.cn
Statement of this Website
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
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template