Home >php教程 >php手册 >CI(CodeIgniter)框架入门教程第二课 初始MVC

CI(CodeIgniter)框架入门教程第二课 初始MVC

WBOY
WBOYOriginal
2016-06-13 09:41:32914browse

http://www.youarebug.com/forum.php?mod=viewthread&tid=105&page=1&extra=#pid142



本帖

 

 

CodeIgniterMVCMVC

 

CodeIgniterCI_02WelcomeindexCIMVCCIconfigroutes.php
<span $route</span>['default_controller'] = "welcome";

 

<span $route</span>['default_controller'] = "calculate";

 

 

<?php <span if</span> ( ! <span defined</span>('BASEPATH')) <span exit</span>('No direct script access allowed'<span );

</span><span /*</span><span 
 * 计算控制器,类名首字母必须大写,所有的控制器必须继承自CI_Controller类
 </span><span */</span>
<span class</span> Calculate <span extends</span><span  CI_Controller {
        </span><span //</span><span  构造方法</span>
        <span function</span><span  __construct() {
                parent</span>::<span __construct();
        }
        
        </span><span //</span><span  默认方法</span>
        <span function</span><span  index() {
                </span><span //</span><span  加载calculate_view视图</span>
                <span $this</span>->load->view('calculate_view'<span );
        }
}

</span><span /*</span><span  End of file calculate.php </span><span */</span>
<span /*</span><span  Location: ./application/controllers/calculate.php </span><span */</span>

 

CICI_ControllerPHP?>CI

 

viewsphpcalculate_view.php
<span <!</span><span DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span ></span>
<span <</span><span html </span><span xmlns</span><span ="http://www.w3.org/1999/xhtml"</span><span ></span>
<span <</span><span head</span><span ></span>
<span <</span><span meta </span><span http-equiv</span><span ="Content-Type"</span><span  content</span><span ="text/html; charset=utf-8"</span> <span /></span>
<span <</span><span title</span><span ></span>网页计算器<span </</span><span title</span><span ></span>
<span <</span><span style </span><span type</span><span ="text/css"</span><span ></span><span 
#calculators </span><span {</span><span 
        margin</span><span :</span><span  10% auto</span><span ;</span><span 
        width</span><span :</span><span 430px</span><span ;</span><span 
        border</span><span :</span><span 1px solid #000</span><span ;</span>
<span }</span>
<span </</span><span style</span><span ></span>
<span </</span><span head</span><span ></span>

<span <</span><span body</span><span ></span>
<span <</span><span div </span><span id</span><span ="calculators"</span><span ></span>
        <span <</span><span form </span><span action</span><span ="index.php/calculate/count"</span><span  method</span><span ="post"</span><span ></span>
                <span <</span><span input </span><span type</span><span ="text"</span><span  name</span><span ="num1"</span><span  id</span><span ="num1"</span> <span /></span>
                <span <</span><span select </span><span name</span><span ="operate"</span><span  id</span><span ="operate"</span><span ></span>
                        <span <</span><span option </span><span value</span><span ="+"</span><span ></span>+<span </</span><span option</span><span ></span>
                        <span <</span><span option </span><span value</span><span ="-"</span><span ></span>-<span </</span><span option</span><span ></span>
                        <span <</span><span option </span><span value</span><span ="x"</span><span ></span>x<span </</span><span option</span><span ></span>
                        <span <</span><span option </span><span value</span><span ="&divide;"</span><span ></span>&divide;<span </</span><span option</span><span ></span>
                <span </</span><span select</span><span ></span>
                <span <</span><span input </span><span type</span><span ="text"</span><span  name</span><span ="num2"</span><span  id</span><span ="num2"</span> <span /></span>
                <span <</span><span input </span><span type</span><span ="submit"</span><span  value</span><span ="计算"</span> <span /></span>
        <span </</span><span form</span><span ></span>
<span </</span><span div</span><span ></span>
<span </</span><span body</span><span ></span>
<span </</span><span html</span><span ></span>

 

<span function</span> <span count</span><span () {
        </span><span //</span><span  使用输入类接收参数</span>
        <span $num1</span> = <span $this</span>->input->post('num1'<span );
        </span><span $op</span> = <span $this</span>->input->post('operate'<span );
        </span><span $num2</span> = <span $this</span>->input->post('num2'<span );
        
        </span><span if</span> (<span is_numeric</span>(<span $num1</span>) && <span is_numeric</span>(<span $num2</span><span )) {
                </span><span //</span><span  如果两个数输入均为数字,则调用calculate_model模型下的count方法</span>
                <span $result</span> = <span $this</span>->calculate_model-><span count</span>(<span $num1</span>, <span $num2</span>, <span $op</span><span );
        }
}</span>

 

 

<span //</span><span  加载计算模型</span>
<span $this</span>->load->model('calculate_model');

<?<span php
</span><span /*</span><span *
 * 计算模型,类名首字母必须大写,所有的模型必须继承自CI_Model类
 </span><span */</span>
<span class</span> Calculate_model <span extends</span><span  CI_Model {
        
        </span><span function</span><span  __construct() {
                parent</span>::<span __construct();
        }
        
        </span><span /*</span><span 
         * 计算函数
         </span><span */</span>
        <span function</span> <span count</span>(<span $num1</span>, <span $num2</span>, <span $op</span><span ) {
                </span><span if</span> (<span $op</span> == "+"<span ) {
                        </span><span return</span> <span $num1</span> + <span $num2</span><span ;
                }</span><span else</span> <span if</span> (<span $op</span> == "-"<span ) {
                        </span><span return</span> <span $num1</span> - <span $num2</span><span ;
                }</span><span else</span> <span if</span> (<span $op</span> == "x"<span ) {
                        </span><span return</span> <span $num1</span> * <span $num2</span><span ;
                }</span><span else</span> <span if</span> (<span $op</span> == "&divide;" && <span $num2</span> != 0<span ) {
                        </span><span return</span> <span $num1</span> / 1.0 / <span $num2</span><span ; 
                }</span><span else</span><span  {
                        </span><span return</span> <span FALSE</span><span ;
                }
        }
}

</span><span /*</span><span  End of file calculate_model.php </span><span */</span>
<span /*</span><span  Location: ./application/models/calculate_model.php </span><span */</span>

 

<span <!</span><span DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span><span ></span>
<span <</span><span html </span><span xmlns</span><span ="http://www.w3.org/1999/xhtml"</span><span ></span>
<span <</span><span head</span><span ></span>
<span <</span><span meta </span><span http-equiv</span><span ="Content-Type"</span><span  content</span><span ="text/html; charset=utf-8"</span> <span /></span>
<span <</span><span title</span><span ></span>网页计算器<span </</span><span title</span><span ></span>
<span <</span><span style </span><span type</span><span ="text/css"</span><span ></span><span 
#calculators </span><span {</span><span 
        margin</span><span :</span><span  10% auto</span><span ;</span><span 
        width</span><span :</span><span 430px</span><span ;</span><span 
        border</span><span :</span><span 1px solid #000</span><span ;</span>
<span }</span>
<span </</span><span style</span><span ></span>
<span </</span><span head</span><span ></span>

<span <</span><span body</span><span ></span>
<span <</span><span div </span><span id</span><span ="calculators"</span><span ></span>
        <span <?</span><span php
        // 从控制器接收数据并对数据进行操作
        if (is_numeric($num1) && is_numeric($num2) && $op && $result && $result != FALSE) {
                echo $num1." ".$op." ".$num2." = ".$result."<br />";
        }else {
                echo "计算错误<br />";
        }
        </span><span ?></span>
        <span <</span><span a </span><span href</span><span ="/CI_02"</span><span ></span>返回首页<span </</span><span a</span><span ></span>
<span </</span><span div</span><span ></span>
<span </</span><span body</span><span ></span>
<span </</span><span html</span><span ></span>

 

 

<span $data</span> = <span array</span>('num1' => 1, 'num2' => 2, 'op' => +, 'result' => 3);

 

 

<span echo</span> <span $num1</span>." ".<span $op</span>." ".<span $num2</span>." = ".<span $result</span>."<br />";

 

 

<span function</span> <span count</span><span () {
        </span><span //</span><span  使用输入类接收参数</span>
        <span $num1</span> = <span $this</span>->input->post('num1'<span );
        </span><span $op</span> = <span $this</span>->input->post('operate'<span );
        </span><span $num2</span> = <span $this</span>->input->post('num2'<span );
        
        </span><span if</span> (<span is_numeric</span>(<span $num1</span>) && <span is_numeric</span>(<span $num2</span><span )) {
                </span><span //</span><span  如果两个数输入均为数字,则调用calculate_model模型下的count方法</span>
                <span $result</span> = <span $this</span>->calculate_model-><span count</span>(<span $num1</span>, <span $num2</span>, <span $op</span><span );
                </span><span //</span><span  生成要传给视图的数据</span>
                <span $data</span> = <span array</span>('num1' => <span $num1</span>, 'num2' => <span $num2</span>, 'op' => <span $op</span>, 'result' => <span $result</span><span );
                </span><span //</span><span  加载视图</span>
                <span $this</span>->load->view('result_view', <span $data</span><span );
        }
}</span>

 

data MVCCI

 

CIMVCMVCURIajax   http://www.youarebug.com/forum.php?mod=viewthread&tid=105&page=1&extra=#pid142

 

 

 

 

 

 

 

 

 

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
Previous article:Daject初探Next article:PHP magic_quotes_gpc