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

ThinkPHP6.0 請(qǐng)求

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


ThinkPHP6 請(qǐng)求

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

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

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

一、變量獲取

方法說明
param獲取當(dāng)前請(qǐ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 請(qǐng)求

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

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

controller代碼

public function edit(){

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

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

    print_r( Request::param('id') );    // 獲取當(dāng)前請(qǐ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 請(qǐng)求

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">原價(jià)</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、變量修飾符

序號(hào)修飾符作用
強(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');

二、請(qǐng)求類型

方法說明
method 獲取當(dāng)前請(qǐng)求類型
has 判斷傳值是否存在
isGet 判斷是否GET請(qǐng)求
isPost 判斷是否POST請(qǐng)求
isPut 判斷是否PUT請(qǐng)求
isDelete 判斷是否DELETE請(qǐng)求
isAjax 判斷是否AJAX請(qǐng)求
isPjax 判斷是否PJAX請(qǐng)求
isJson 判斷是否JSON請(qǐng)求
isMobile 判斷是否手機(jī)訪問
isHead 判斷是否HEAD請(qǐng)求
isPatch 判斷是否PATCH請(qǐng)求
isOptions 判斷是否OPTIONS請(qǐng)求
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">原價(jià)</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('確定要?jiǎng)h除嗎?', {

            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>

五、請(qǐng)求信息

序號(hào)方法說明
1host 當(dāng)前訪問域名或者IP
scheme 當(dāng)前訪問協(xié)議
port 當(dāng)前訪問的端口
4remotePort當(dāng)前請(qǐng)求的REMOTE_PORT
5protocol 當(dāng)前請(qǐng)求的SERVER_PROTOCOL
6contentType 當(dāng)前請(qǐ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)前請(qǐng)求的QUERY_STRING參數(shù)
14 baseFile 當(dāng)前執(zhí)行的文件
15root URL訪問根地址
16 rootUrl URL訪問根目錄
17 pathinfo 當(dāng)前請(qǐng)求URL的pathinfo信息(含URL后綴)
18 ext 當(dāng)前URL的訪問后綴
19 time 獲取當(dāng)前請(qǐng)求的時(shí)間
20 type 當(dāng)前請(qǐng)求的資源類型
21 method 當(dāng)前請(qǐng)求類型
22 rule 當(dāng)前請(qǐng)求的路由對(duì)象實(shí)例
23 controller 當(dāng)前請(qǐng)求的控制器名
24 action 當(dāng)前請(qǐng)求的操作名
print_r( Request::host() );
print_r( Request::url() );
print_r( Request::controller() );
print_r( Request::action() );

六、HTTP頭信息

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

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