ThinkPHP6.0 リクエスト


ThinkPHP6 request

  • リクエスト オブジェクトを使用するには、ファサード メソッド (think\facade\Request クラスが担当) を使用して

  • を呼び出す必要があります。

    リクエストを使用できます。このオブジェクトは、グローバル入力変数の検出、取得、セキュリティ フィルタリングを完了します。

  • は、$_GET$_POST## をサポートします。 #、$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV およびその他のシステム変数、およびファイルのアップロード情報

1. 変数の取得

#

1. GET リクエスト

  • PARAM 型変数は、現在のリクエストを自動的に識別するためにフレームワークが提供する変数取得メソッドです。システム リクエスト パラメータを取得する推奨方法

  • paramこのメソッドは、現在のリクエスト タイプのパラメータをルーティング変数および GET リクエストとマージし、ルーティング変数が優先されます。

コントローラコード

public function edit(){

print_r( $_GET ); // ネイティブ受信受信

print_r( Request::param() ); // 現在のリクエストのすべての変数を取得します

print_r( Request::param('id') ); // 現在のリクエストの ID 変数を取得します

print_r( Request::get() );

}

コードを表示:index.html

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


<スクリプトtype="text /javascript">

function edit(id){

layer.open({

type: 2,

title: '追加'、

シェード: 0.3、

エリア: ['480px', '440px']、

コンテンツ: '/index.php/index/edit? id=' ID

});

}

</script>

2.POST リクエスト

コントローラー コード

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'=>'変更に失敗しました']);

}

}

コードの表示: 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-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']}" { $shop['cat']==$cat_v['id']} が選択された場合 {/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.価格}">

</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">状態态</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" >

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

</div>

</div>

<script type="text/javascript">

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

フォーム= layui.form;

レイヤー= layui.layer;

$ = layui.jquery;

## strue {

' - ' - t t t t t t t t t t t- –の前T ‐ ‐

## </script >

</body>

</html>

3. 変数修飾子

シリアル番号

修飾子

関数

1

s

文字列型に強制します

メソッド説明
param現在のリクエストの変数を取得します
get$_GET 変数を取得します
post $_POST 変数を取得します
put PUT 変数を取得します
delete DELETE 変数を取得します
session SESSION 変数を取得します
cookie $_COOKIE 変数
リクエスト $_REQUEST 変数の取得
サーバー $_SERVER の取得variable
env $_ENV 変数の取得
route ルート (PATHINFO を含む) の取得) variable
middleware ミドルウェアによって割り当て/渡された変数を取得します
file Get $_FILES 変数
2d 強制的に文字列型にします整数型3 b 強制的にブール型a f
##4
配列型への強制変換5
浮動小数点型への強制変換


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

2. リクエスト タイプ

##isPost POST リクエストが行われたかどうかを判断しますisPut PUT リクエスト # が Delete であるかどうかを判断 #Ajax であるかどうかを判断 isPjax isJson isMobile isHead パッチリクエストであるかどうかの判定判定OPTIONS リクエストかどうかCLI 実行かどうかの判断CLI 実行かどうかの判断CGI モードです
メソッド説明
method 現在のリクエスト タイプを取得します
has 渡された値が存在するかどうかを確認します
isGet GET リクエストが行われたかどうかを判断します
DELETE リクエストが
AJAX リクエストかどうかの判断
PJAX リクエストかどうかの判断
JSON リクエストであるかどうかを判断する
携帯電話からのアクセスかどうかを判断する
HEADリクエストかどうかの判定
オプションであるかどうかの判定
isCli
isCgi
#

1、メソッド

パブリック関数 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();

}

}

三、例:增加データ

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>< ;/タイトル>

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

</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});

### }それ以外{###

layer.msg(res.msg);

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

}

},'json');

});

}

</script>

5. リクエスト情報

#67 8 9 10 ##12 baseUrl 現在の URL (QUERY_STRING を除く) 13 クエリ現在のリクエストの QUERY_STRING パラメータ14 baseFile 現在実行中のファイル15root URL アクセスルートアドレス16 rootUrl URL アクセス ルート ディレクトリ17 pathinfo 現在リクエストされている URL の pathinfo 情報 (URL サフィックスを含む)18 ext 現在の URL のアクセス サフィックス19 time 現在のリクエストの時刻を取得します20 type 現在リクエストされているリソースの種類##23 controller 現在の要求されたコントローラー名#24
print_r( Request::host() );
print_r( Request::url() );
print_r( Request::controller() );
print_r( Request::action() );
6. HTTP ヘッダー情報
シリアル番号メソッド説明
1ホスト 現在のアクセス ドメイン名または IP
2 スキーム 現在のアクセスプロトコル
3 ポート 現在アクセスされているポート
4リモートポート REMOTE_PORT が現在リクエストされています
5プロトコル SERVER_PROTOCOL が現在リクエストされています
contentType 現在リクエストされている CONTENT_TYPE
domain 現在、プロトコル ドメインが含まれています名前
サブドメイン 現在アクセスしているサブドメイン名
panDomain 現在アクセスしているパンドメイン名
rootDomain 現在アクセスしているルート ドメイン名
11 url現在の完全な URL
21 メソッド 現在のリクエスト タイプ
22 ルール 現在の要求されたルーティング オブジェクト インスタンス
action 現在のリクエストのオペレーション名