Demande ThinkPHP6.0


Requête ThinkPHP6

  • Pour utiliser l'objet request, vous devez utiliser la méthode façade (la classe thinkfacadeRequest est responsable) pour appeler

  • La détection, l'acquisition et le filtrage de sécurité des variables d'entrée globales peuvent être complétés via l'objet Request

  • Prend en charge $_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV et d'autres variables système, ainsi que les informations de téléchargement de fichiers

1. Acquisition de variable

méthode description
paramObtenir la variable de la requête en cours
getObtenir la variable $_GET
poster Obtenir Variable $_POST
put Obtenir la variable PUT
delete Obtenir la variable DELETE
session Obtenir la variable SESSION
cookie Obtenir la variable $_COOKIE
request Obtenir la variable $ _REQUEST
server Obtenir la variable $_SERVER
env Obtenir la variable $_ENV
route G et la variable itinéraire (y compris PATHINFO)
middleware Obtenir l'affectation du middleware/Variable passée
fichier Obtenir la variable $_FILES

1. La variable de type GET request

  • PARAM est une méthode d'acquisition de variable fournie par le framework pour identifier automatiquement la requête en cours. C'est la méthode recommandée par le système pour obtenir les paramètres de la requêtePARAM类型变量是框架提供的用于自动识别当前请求的一种变量获取方式,是系统推荐的获取请求参数的方法

  • param

    .
La méthode param fusionnera les paramètres du type de requête actuel avec les variables de routage et les requêtes GET, et les variables de routage auront la priorité

code du contrôleur

public function edit(){

print_r( $ _GET ); // Native get reçoit

print_r( Request::param() ); // Récupère toutes les variables de la requête actuelle

print_r( Request::param('id') ); Obtenez l'identifiant de la requête en cours Variable

print_r( Request::get() );

}

view code: index.html


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

<script type="text/javascript">

fonction edit(id){

                                                                                            2,

                                                                                            it?id='+id

});

}

& lt;/script & gt;

2, demande de publication

Code du contrôleur

Modification de la fonction publique () {

$ 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,

]) ;

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'=>'Modification réussie']);

}else{

'=> ;1,'msg'=>'Échec de la modification']);

}

}

afficher le code : edit.html

<!DOCTYPE html>

<html>

< tête>

    <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">

                < type d'entrée = "texte " 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">

             <sélectionner un nom= "cat">

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

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

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

                    {/volist}

                </select>

            </div>

        & lt;/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= <

        </div>

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

            <label class="layui-form-label">状态</label>

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

                <select name="status">

                    <option value="1" {if $shop['status']==1} sélectionné {/if }>开启</option>

                    <option value="2" {if $shop['status']==2} sélectionné {/if}>关闭</option>

                </ sélectionnez>

            </div>

        </div>

    </form>

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

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

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

        </div>

    </div>

                                                                                                                                                                                      ,,,,, ;                                                                    (res){

                                                                                                                   layer.msg(res.msg);

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

                                                                                        

      

</body>

2

d

Converti en type entier

3

b

Converti en type booléen

4

a

Conversion en type tableau

5

f

Conversion en type virgule flottante


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

2. Type de demande

isGet estPost estPut estDelete isAja x isPjax isJson isMobile isHead isPatch estOptions estCli estCgi

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 j son_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();

    }

}

三、示例:增加数据

contrôleur代码

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, 'message '=>'添加失败']);

        }

    }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">

            <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>

& lt;/corps>

</html>

四、示例:删除数据

controller代码

public function del(){

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

    $del ete = 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,

            bton : ['确定','取消']

        }, 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>

5. Demande d'informations

méthodeDescription
méthode Obtenir le type de demande actuel
Jugez si la valeur transmise existe
Juger si la demande GET
Déterminer si la demande POST
Déterminer si la demande PUT
Déterminer si la demande DELETE
Déterminer si la requête AJAX
Détermine si la requête PJAX
Détermine si la requête JSON
Détermine si l'accès mobile
Déterminer si la demande HEAD
Déterminer si la requête PATCH
Déterminer si la requête OPTIONS
Déterminer s'il s'agit d'une exécution CLI
Déterminer s'il s'agit du mode CGI
Paramètre QUERY_STRING de la requête en cours 14 baseFile Fichier actuellement exécuté15root Adresse racine d'accès URL 16 rootUrl Répertoire racine d'accès URL 17 pathinfo Le pathinfo de la requête en cours Informations sur l'URL (y compris le suffixe de l'URL) 18 ext Suffixe d'accès de l'URL actuelle 19 heure Obtenez l'heure de la demande en cours 20
numéro de sérieméthodeinstructions
1hôte Nom de domaine ou IP d'accès actuel
2 schéma Accord d'accès actuel
3 port Le port actuellement accédé
4remotePortLe REMOTE_PORT actuellement demandé
5protocole Le SERVER_PRO actuellement demandé TOCOL
6contentType Demande actuelle CONTENT_TYPE
7 domaine Le nom de domaine contenant actuellement le protocole
8 sous-domaine Le sous-domaine actuellement visité
9 pan Domaine Nom de domaine générique actuellement visité
10 rootDomain Le nom de domaine racine actuellement visité
11 urlURL complète actuelle
12 baseUrl URL actuelle (sans QUERY_STRING)
13 requête
tapez Le type de ressource actuellement demandé
21 méthode Type de requête actuel
22 règle L'instance de l'objet de routage de la requête actuelle
23 contrôleur Le nom du contrôleur de la requête en cours
24 action Le nom de l'opération de la requête en cours
print_r( Request::host() );
print_r( Request::url() );
print_r( Request::controller() );
print_r( Request::action() );

6. Informations d'en-tête HTTP

  • Le nom des informations d'en-tête de la requête HTTP n'est pas sensible à la casse et _ sera automatiquement converti en -

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