国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ThinkPHP6.0 請求

要使用請求對象必須使用門面方式( think\facade\Request類負(fù)責(zé) )調(diào)用。


ThinkPHP6 請求

  • 要使用請求對象必須使用門面方式( think\facade\Request類負(fù)責(zé) )調(diào)用

  • 可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾

  • 支持$_GET、$_POST、$_REQUEST$_SERVER、$_SESSION、$_COOKIE、$_ENV等系統(tǒng)變量,以及文件上傳信息

一、變量獲取

方法說明
param獲取當(dāng)前請求的變量
get獲取 $_GET 變量
post 獲取 $_POST 變量
put 獲取 PUT 變量
delete 獲取 DELETE 變量
session 獲取 SESSION 變量
cookie 獲取 $_COOKIE 變量
request 獲取 $_REQUEST 變量
server 獲取 $_SERVER 變量
env 獲取 $_ENV 變量
route 獲取 路由(包括PATHINFO) 變量
middleware 獲取 中間件賦值/傳遞的變量
file 獲取 $_FILES 變量

1、GET 請求

  • PARAM類型變量是框架提供的用于自動識別當(dāng)前請求的一種變量獲取方式,是系統(tǒng)推薦的獲取請求參數(shù)的方法

  • param方法會把當(dāng)前請求類型的參數(shù)和路由變量以及GET請求合并,并且路由變量是優(yōu)先的

controller代碼

public function edit(){

    print_r( $_GET );    // 原生get接收

    print_r( Request::param() ); // 獲取當(dāng)前請求的所有變量

    print_r( Request::param('id') );    // 獲取當(dāng)前請求的id變量

    print_r( Request::get() );

}

view代碼:index.html

<button class="layui-btn layui-btn-xs" onclick="edit({$right_v.id})">編輯</button>


<script type="text/javascript">

    function edit(id){

        layer.open({

            type: 2,

            title: '添加',

            shade: 0.3,

            area: ['480px', '440px'],

            content: '/index.php/index/edit?id='+id

        });

    }

</script>

2、POST 請求

controller代碼

public function edit(){

    $id = Request::param('id');

    $shop = Db::table('shop_goods')->where('id',$id)->find();

    $cat = Db::table('shop_cat')->where('status',1)->select();

    View::assign([

        'shop' => $shop,

        'cat' => $cat

    ]);

    return View::fetch();

}

public function edits(){

    // print_r( Request::param() );

    // print_r( Request::post() );


    $all = Request::param();

    $update = Db::table('shop_goods')->where('id',$all['id'])->update($all);

    if($update){

        echo json_encode(['code'=>0,'msg'=>'修改成功']);

    }else{

        echo json_encode(['code'=>1,'msg'=>'修改失敗']);

    }

}

view代碼:edit.html

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">

    <script type="text/javascript" src="/static/layui/layui.js"></script>

</head>

<body style="padding:10px;">

    <form class="layui-form">

        <input type="hidden" name="id" value="{$shop.id}">

        <div class="layui-form-item">

            <label class="layui-form-label">標(biāo)題</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="title" value="{$shop.title}">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">分類</label>

            <div class="layui-input-inline">

                <select name="cat">

                    <option value=0 {if $shop['cat']==0} selected {/if}></option>

                    {volist name="cat" id="cat_v"}

                        <option value="{$cat_v['id']}" {if $shop['cat']==$cat_v['id']} selected {/if}>{$cat_v['name']}</option>

                    {/volist}

                </select>

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">原價</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="price" value="{$shop.price}">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">折扣</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="discount" value="{$shop.discount}">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">庫存</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="stock" value="{$shop.stock}">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">狀態(tài)</label>

            <div class="layui-input-inline">

                <select name="status">

                    <option value="1" {if $shop['status']==1} selected {/if}>開啟</option>

                    <option value="2" {if $shop['status']==2} selected {/if}>關(guān)閉</option>

                </select>

            </div>

        </div>

    </form>

    <div class="layui-form-item">

        <div class="layui-input-block">

            <button class="layui-btn" onclick="save()">保存</button>

        </div>

    </div>

    <script type="text/javascript">

        layui.use(['layer','form'],function(){

            form = layui.form;

            layer = layui.layer;

            $ = layui.jquery;

        });

        function save(){

            $.post('/index.php/Index/edits',$('form').serialize(),function(res){

                if(res.code>0){

                    layer.alert(res.msg,{icon:2});

                }else{

                    layer.msg(res.msg);

                    setTimeout(function(){parent.window.location.reload();},1000);

                }

            },'json');

        }

    </script>

</body>

</html>

3、變量修飾符

序號修飾符作用
強(qiáng)制轉(zhuǎn)換為字符串類型
2強(qiáng)制轉(zhuǎn)換為整型類型
強(qiáng)制轉(zhuǎn)換為布爾類型
強(qiáng)制轉(zhuǎn)換為數(shù)組類型
5強(qiáng)制轉(zhuǎn)換為浮點(diǎn)類型


Request::get('id/d');
Request::post('name/s');
Request::param('price/f');

二、請求類型

方法說明
method 獲取當(dāng)前請求類型
has 判斷傳值是否存在
isGet 判斷是否GET請求
isPost 判斷是否POST請求
isPut 判斷是否PUT請求
isDelete 判斷是否DELETE請求
isAjax 判斷是否AJAX請求
isPjax 判斷是否PJAX請求
isJson 判斷是否JSON請求
isMobile 判斷是否手機(jī)訪問
isHead 判斷是否HEAD請求
isPatch 判斷是否PATCH請求
isOptions 判斷是否OPTIONS請求
isCli 判斷是否為CLI執(zhí)行
isCgi 判斷是否為CGI模式

1、method

public function edit(){

    if(Request::method() == 'POST'){

        // print_r(Request::method());exit;

        $all = Request::param();

        $update = Db::table('shop_goods')->where('id',$all['id'])->update($all);

        if($update){

            echo json_encode(['code'=>0,'msg'=>'修改成功']);

        }else{

            echo json_encode(['code'=>1,'msg'=>'修改失敗']);

        }

    }else{

        // print_r(Request::method());exit;

        $id = Request::param('id');

        $shop = Db::table('shop_goods')->where('id',$id)->find();

        $cat = Db::table('shop_cat')->where('status',1)->select();

        View::assign([

            'shop' => $shop,

            'cat' => $cat

        ]);

        return View::fetch();

    }

}

三、示例:增加數(shù)據(jù)

controller代碼

public function add(){

    if(Request::method() == 'POST'){

        $all = Request::param();

        $insert = Db::table('shop_goods')->insert($all);

        if($insert){

            echo json_encode(['code'=>0,'msg'=>'添加成功']);

        }else{

            echo json_encode(['code'=>1,'msg'=>'添加失敗']);

        }

    }else{

        $cat = Db::table('shop_cat')->where('status',1)->select();

        View::assign([

            'cat' => $cat

        ]);

        return View::fetch();

    }

}

view代碼:add.html

<!DOCTYPE html>

<html>

<head>

    <title></title>

    <link rel="stylesheet" type="text/css" href="/static/layui/css/layui.css">

    <script type="text/javascript" src="/static/layui/layui.js"></script>

</head>

<body style="padding:10px;">

    <form class="layui-form">

        <div class="layui-form-item">

            <label class="layui-form-label">標(biāo)題</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="title" value="">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">分類</label>

            <div class="layui-input-inline">

                <select name="cat">

                    <option value=0 selected></option>

                    {volist name="cat" id="cat_v"}

                        <option value="{$cat_v['id']}">{$cat_v['name']}</option>

                    {/volist}

                </select>

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">原價</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="price" value="">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">折扣</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="discount" value="">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">庫存</label>

            <div class="layui-input-inline">

                <input type="text" class="layui-input" name="stock" value="">

            </div>

        </div>

        <div class="layui-form-item">

            <label class="layui-form-label">狀態(tài)</label>

            <div class="layui-input-inline">

                <select name="status">

                    <option value="1" selected>開啟</option>

                    <option value="2">關(guān)閉</option>

                </select>

            </div>

        </div>

    </form>

    <div class="layui-form-item">

        <div class="layui-input-block">

            <button class="layui-btn" onclick="save()">保存</button>

        </div>

    </div>

    <script type="text/javascript">

        layui.use(['layer','form'],function(){

            form = layui.form;

            layer = layui.layer;

            $ = layui.jquery;

        });

        function save(){

            $.post('/index.php/Index/add',$('form').serialize(),function(res){

                if(res.code>0){

                    layer.alert(res.msg,{icon:2});

                }else{

                    layer.msg(res.msg);

                    setTimeout(function(){parent.window.location.reload();},1000);

                }

            },'json');

        }

    </script>

</body>

</html>

四、示例:刪除數(shù)據(jù)

controller代碼

public function del(){

    $id = Request::param('id');

    $delete = Db::table('shop_goods')->where('id',$id)->delete();

    if($delete){

        echo json_encode(['code'=>0,'msg'=>'刪除成功']);

    }else{

        echo json_encode(['code'=>1,'msg'=>'刪除失敗']);

    }

}

view代碼:index.html

<button class="layui-btn layui-btn-danger layui-btn-xs" onclick="del({$right_v.id})">刪除</button>

<script type="text/javascript">

    function del(id){

        layer.confirm('確定要刪除嗎?', {

            icon:3,

            btn: ['確定','取消']

        }, function(){

            $.post('/index.php/index/del',{'id':id},function(res){

                if(res.code>0){

                    layer.alert(res.msg,{icon:2});

                }else{

                    layer.msg(res.msg);

                    setTimeout(function(){window.location.reload();},1000);

                }

            },'json');

        });

    }

</script>

五、請求信息

序號方法說明
1host 當(dāng)前訪問域名或者IP
scheme 當(dāng)前訪問協(xié)議
port 當(dāng)前訪問的端口
4remotePort當(dāng)前請求的REMOTE_PORT
5protocol 當(dāng)前請求的SERVER_PROTOCOL
6contentType 當(dāng)前請求的CONTENT_TYPE
domain 當(dāng)前包含協(xié)議的域名
subDomain 當(dāng)前訪問的子域名
panDomain 當(dāng)前訪問的泛域名
10 rootDomain 當(dāng)前訪問的根域名
11 url當(dāng)前完整URL
12 baseUrl 當(dāng)前URL(不含QUERY_STRING)
13 query 當(dāng)前請求的QUERY_STRING參數(shù)
14 baseFile 當(dāng)前執(zhí)行的文件
15root URL訪問根地址
16 rootUrl URL訪問根目錄
17 pathinfo 當(dāng)前請求URL的pathinfo信息(含URL后綴)
18 ext 當(dāng)前URL的訪問后綴
19 time 獲取當(dāng)前請求的時間
20 type 當(dāng)前請求的資源類型
21 method 當(dāng)前請求類型
22 rule 當(dāng)前請求的路由對象實(shí)例
23 controller 當(dāng)前請求的控制器名
24 action 當(dāng)前請求的操作名
print_r( Request::host() );
print_r( Request::url() );
print_r( Request::controller() );
print_r( Request::action() );

六、HTTP頭信息

  • HTTP請求頭信息的名稱不區(qū)分大小寫,并且_會自動轉(zhuǎn)換為-

print_r( Request::header() );
print_r( Request::header('accept_encoding') );