zoukankan      html  css  js  c++  java
  • ThinkPHP之MVC与URL访问

    一、初探


     

    我们在apache的www目录下创建一个文件夹,其命名为我们的应用名。然后通过入口文件生成我们的应用。

    当我们用ThinkPHP创建好一个应用后,其目录结果如下所示

    那么我们如何来访问我们应用中的模块呢?其规则如下

    http://serverName/applicationName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...]

    比如访问应用CloudCrypt应用下的Home模块的方式如下

    http://localhost/CloudCrypt/index.php/Home/Index/index

    其返回结果图所示

     

    二、controller


     

      在上面的目录结构中我们可以看到Home模块下有个controller文件夹,这就对应我们MVC中的C了。一般所有的请求都需要经过控制器,而我们编写的控制器都放在该文件夹下。默认的控制器是IndexController.class.php

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
            $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8');
        }
    }

     我们访问就这个控制器下的index方法,这同时也给我提供一个控制器编写规范,当我们需要添加控制器时就直接在该文件夹下创建一个nameController.class.php。然后在里面仿照上面的方式来写我们的方法。

    三、添加方法


    我们为IndexController.class.php添加一个sayHello方法。

    <?php
    namespace HomeController;
    use ThinkController;
    class IndexController extends Controller {
        public function index(){
          ..........
        }
    
        public function sayHello(){
            $this->show('<h1>你好!</h1>'.$_GET['username']);
        }
    }

    通过浏览器访问

    • PATHINFO模式

      

    • 传统方式

      

    常用的访问方式是PATHINFO方式,当然还有其它的方式,详见戳我

     

  • 相关阅读:
    Vue.js进阶知识点总结
    测试初学
    gitee简单命令使用
    Ubuntu学习之alias命令
    Python turtle.right与turtle.setheading的区别
    Python-对Pcap文件进行处理,获取指定TCP流
    第八次作业
    第七次作业
    第八周作业
    第七周作业
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5559333.html
Copyright © 2011-2022 走看看