ThinkPHP6.0-Anfrage


ThinkPHP6-Anfrage

  • Um das Anforderungsobjekt zu verwenden, müssen Sie die Fassadenmethode verwenden (die Klasse thinkfacadeRequest ist dafür verantwortlich). ) Durch Aufrufen von

  • kann die Erkennung, Erfassung und Sicherheitsfilterung globaler Eingabevariablen über das Request-Objekt

    <🎜 abgeschlossen werden >
  • Unterstützt Systemvariablen wie

    , $_GET, $_POST, $_REQUEST, $_SERVER, $_SESSION, $_COOKIE und Datei-Upload-Informationen$_ENV

1. Variablenerfassung

方法说明
param获取当前请求的变量
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 Die Variable vom Typ Anfrage

  • PARAM ist eine vom Framework bereitgestellte Variablenerfassungsmethode, um die aktuelle Anforderung automatisch zu identifizieren. Es handelt sich um die vom System empfohlene Methode zum Abrufen von Anforderungsparametern

  • Die Methode führt die Parameter des aktuellen Anforderungstyps mit Routing-Variablen und GET-Anfragen zusammen, und die Routing-Variablen haben Priorität param

Controller-Code

öffentlich function edit(){

print_r( $_GET ); // Native get empfängt

print_r( Request::param() ); // Alle Variablen der aktuellen Anfrage abrufen

print_r( Request::param('id') ); Holen Sie sich die ID-Variable der aktuellen Anfrage

print_r( Request::get() );

}

view code: index.html

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


<script type="text/javascript">

Funktion bearbeiten(id){

layer.open({

Typ: 2,

Titel: 'Hinzufügen',

Farbton: 0,3,

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

Inhalt: '/index.php/index/edit?id=' id

});

}

</script>

2. POST-Anfrage

Controller-Code

öffentliche Funktion 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'=>'Änderung erfolgreich']);

}else{

echo json_encode(['code'=>1,'msg'=>'Änderung fehlgeschlagen']);

}

}

Code anzeigen: 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">标题</label>

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

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

            </div>

        </div>

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

           <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']} ausgewählt {/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- Artikel">

           <label class="layui-form-label">状态</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}>关闭</option>

                </select>

            </div>

       </div>

    </form>

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

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

            <Schaltfläche 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、变量修饰符

序号修饰符作用
强制转换为字符串类型
2强制转换为整型类型
强制转换为布尔类型
强制转换为数组类型
5强制转换为浮点类型


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

2. Anfragetyp

方法说明
method 获取当前请求类型
has 判断传值是否存在
isGet 判断是否GET请求
isPost 判断是否POST请求
isPut 判断是否PUT请求
isDelete 判断是否DELETE请求
isAjax 判断是否AJAX请求
isPjax 判断是否PJAX请求
isJson 判断是否JSON请求
isMobile 判断是否手机访问
isHead 判断是否HEAD请求
isPatch 判断是否PATCH请求
isOptions 判断是否OPTIONS请求
isCli 判断是否为CLI执行
isCgi 判断是否为CGI模式

1、Methode

öffentliche Funktion 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,

            'Katze' => $cat

        ]);

        return View::fetch();

   }

}

三、示例:增加数据

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">标题</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">状态</label>

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

                <select name="status">

                    <option value="1" selected>开启</option>

                    <option value="2">关闭</option>

                </select>

            </div>

        </div>

    </form>

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

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

            <Schaltfläche 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> ;

四、示例:删除数据

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-btnlayui-btn-dangerlayui-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');

5. Informationen anfordern

SeriennummerMethodeAnleitung
1Host Aktueller Zugriffsdomänenname oder IP
2 Schema Aktuelles Zugriffsprotokoll
3 Port Derzeit aufgerufener Port
4remoteP ortREMOTE_PORT der aktuellen Anfrage
5Protokoll aktuelle Anfrage SERVER_PROTOCOL
6contentType CONTE der aktuellen Anfrage NT_TYPE
7 Domäne Domänenname, der derzeit das Protokoll enthält
8 subDomain Derzeit besuchte Subdomain-Name
9 panDomain Derzeit besuchte generische Domänenname
10 rootDomain Derzeit besuchte Root-Domänenname
11 URLAktuelle vollständige URL
12 Basis URL Aktuelle URL (außer QUERY_STRING)
13 Abfrage QUERY_STRING-Parameter der aktuellen Anfrage
14 baseFile Aktuell ausgeführte Datei
15Stammverzeichnis URL-Zugriffs-Stammadresse
16 rootUrl URL-Zugriff auf Stammverzeichnis
17 Pfadinfo Die Pfadinfo-Informationen der aktuell angeforderten URL (einschließlich URL-Suffix)
18 ext Zugriffssuffix der aktuellen URL
19 Zeit Erhalten Sie die Zeit der aktuellen Anfrage
20 Typ Der Ressourcentyp der aktuellen Anfrage
21 Methode Aktueller Anforderungstyp
22 Regel Derzeit angeforderte Routingobjektinstanz
23 Controller Aktuell angeforderter Controllername
24 Aktion Der aktuell angeforderte Vorgangsname
print_r( Request::host() );
print_r( Request::url() );
print_r( Request::controller() );
print_r( Request::action() );

6. HTTP-Header-Informationen

  • Beim Namen der HTTP-Anfrage-Header-Informationen wird die Groß-/Kleinschreibung nicht beachtet und _ wird automatisch in -

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