三、模块、路由和获取请求参数

1、写一个简单的模块

config.php

appnamespace =>app

设置自动命名setting->Directories
把application标记为Sources,点击小p标记成app

2、配置虚拟域名简化url路径

http://localhost/zerg/public/indeex.php/sample/test/hello
http://z.cn/sample/test/hello

打开xampp的根目录Apache\conf\eextra\http_vhost.conf

<VirtualHost *:80>
    DocumentRoot "D:\xampp\htdocs\zerg\public"
    ServerName z.cn
</VirtualHost>

apach服务器能够认出z.cn
接下来让电脑(浏览器)也能认出

host文件

127.0.0.1 z.cn

重启xampp-apach

这时有一个问题 输入localhost,结果访问的是public
解决方法 xampp-apach-config-httpd.conf

Apache\conf\eextra\http_vhost.conf

<VirtualHost *:80>
    DocumentRoot "D:\xampp\htdocs"
    ServerName localhost
</VirtualHost>

4、三种URL访问模式

路由有两种方法:
配置式编写
动态注册

route.php

<?php
use think\Route;

Route::rule('hello/:id','sample/Test/hello');
//Route::rule('hello','sample/Test/hello','GET|POST',['https'=>false]);

//Route::post();
//Route::any();
Route::get('api/:version/banner/:id','api/:version.Banner/getBanner');

url路径格式

PATH_INFO
混合模式
强制使用路由模式

config.php

"url_route_on"->true;//开启路由
"url_route_must"->true;//只使用路由

5、定义路由

route.php


//Route::rule('路由表达式','路由地址','请求类型','路由参数[数组]','变量规则[数组]');

//GET,POST,DELATE,PUT,*

//Route::rule('hello','sample/Test/hello','GET',['https'=>false]);//必须以https访问

6、获取请求参数

在route里面传;或者在后边加问号加参数名和值

//Route::post('hello/:id','sample/Test/hello');

1、直接在hello方法里面 接收

<?php
namespace app\sample\controller

class Test()
{
    public function hello($id, $name, $age)
    {
        echo $id;
        echo $name;
        echo $age;
    }
}

2、使用Request

```
<?php
namespace app\sample\controller
use think\Request
class Test()
{
    public function hello($id, $name, $age)
    {
        $all = Request::instance()->param();//获取数组
        //$id = Request::instance()->param('id');
        ///$name = Request::instance()->param('name');
        //$age = Request::instance()->param('age');
        echo $id;
        echo $name;
        echo $age;
    }
}

z.cn/hello/123?name=lihua
age 是通过post body里面传入的

$name = Request::instance()->get();
$route = Request::instance()->route();
$age = Request::instance()->post();

变量类型方法包括:

方法 描述
param 获取当前请求的变量
get 获取 GETpost _POST 变量
put 获取 PUT 变量
delete 获取 DELETE 变量
session 获取 SESSIONcookie _COOKIE 变量
request 获取 REQUESTserver _SERVER 变量
env 获取 ENVroutePATHINFOfile _FILES 变量

3、、助手函数

<?php
namespace app\sample\controller
class Test()
{
    public function hello($id, $name, $age)
    {
        $all = input('param.age');
        var_dump($all);
    }
}

4、依赖注入

<?php
namespace app\sample\controller
class Test()
{
    public function hello(Request request)
    {
        $all = request->param();
        var_dump($all);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值