ThinkPHP6.0 요청


ThinkPHP6 요청

  • 요청 객체를 사용하려면 Facade 메소드(thinkfacadeRequest 클래스가 담당)를 사용하여 호출해야 합니다

  • 전역 입력 변수의 감지, 획득 및 보안 필터링은 요청 객체를 통해 완료할 수 있습니다

  • 지원$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV 및 기타 시스템 변수, 그리고 파일 업로드 정보

1. 변수 획득

방법 설명
param현재 요청의 변수 가져오기
get$_GET 변수 가져오기
게시물 Get $_POST 변수
put PUT 변수 가져오기
delete DELETE 변수 가져오기
session SESSION 변수 가져오기
쿠키 $_COOKIE 변수 가져오기
요청 $ _REQUEST 변수 가져오기
server $_SERVER 변수 가져오기
env $_ENV 변수 가져오기
route Get 경로(PATHINFO 포함) 변수
미들웨어 미들웨어 할당 가져오기/ 전달된 변수
파일 $_FILES 변수 가져오기

1. GET 요청

  • PARAM 유형 변수는 현재 요청을 자동으로 식별하기 위해 프레임워크에서 제공하는 변수 획득 방법으로 요청 매개변수를 얻기 위해 시스템에서 권장하는 방법입니다. PARAM类型变量是框架提供的用于自动识别当前请求的一种变量获取方式,是系统推荐的获取请求参数的方法

  • param

    param 메소드는 현재 요청 유형의 매개변수를 라우팅 변수 및 GET 요청과 병합하며 라우팅 변수가 우선순위를 갖습니다

controller code

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})">Edit</button>


<script type="text/javascript">

함수 편집(id){

                                                                                                  2,

ㅋㅋㅋ ~                                 it?id='+id

})

}

& lt;/script & gt

2, 게시물 요청

컨트롤러 코드

공개 기능 편집() {

$ ID = 요청 :: Param ('ID');

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

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

View::ass([

] '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{

'=>1,'msg'=>'수정 실패']);

}

}

코드 보기: edit.html

<!DOCTYPE html>

<html>

<head>

    <제목></title>

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

    <스크립트 유형= "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">

                <이름 선택= "cat">

                    <옵션 값=0 {if $shop['cat']==0} 선택됨 {/if}></option>

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

                        <option value="{$cat_v['id']}" {if $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.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">状态</label>

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

                <select name="status">

                    <옵션 값="1" {if $shop['status']==1} 선택됨 {/if }>开启</option>

                    <option value="2" {if $shop['status']==2} 선택됨 {/if}>关闭</option>

                </ 선택>

            </div>

        </div>

    </form>

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

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

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

        </div>

    </div>

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

                                                                                                  (해상도){

                                                                                         layer.msg(res.msg);

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

                                                                        

     

</body>

2

d

정수 유형으로 변환

3

b

부울 유형으로 변환

4

a

배열 유형으로 변환

5

f 부동 소수점 유형으로 변환


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

2. 요청 유형

methodDescription
method 현재 요청 유형 가져오기
has 전달된 값이 있는지 판단
isGet GET 요청 여부 판단
isPost POST 요청 여부 판단
isPut PUT 요청 여부 판단
isDelete DELETE 요청 여부 판단
isAja x AJAX 요청 여부 확인
isPjax PJAX 요청 여부 결정
isJson JSON 요청 여부 결정
isMobile 모바일 액세스 여부 결정
isHead HEAD 요청 여부 결정
isPatch PATCH 요청 여부 확인
isOptions OPTIONS 요청 여부 확인
isCli CLI 실행 여부 확인
isCgi CGI 모드 여부 확인

1、method

공개 함수 edit(){

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

        // print_r(요청::method());exit;

        $ all = 요청::param();

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

ㅋㅋㅋ (['코드'=> ;1,'msg'=>'修改失败']);

        }

    }else{

        // print_r(요청::method());exit;

        $id = 요청::param( 'id');

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

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

        보기::할당([

            'shop' => $shop,

            'cat' => $cat

ㅋㅋㅋ (){

    if(요청::메서드 () == '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() ;

        보기::할당([

            '고양이' => $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">

ㅋㅋㅋ

                        <옵션 값="{ $cat_v['id']}">{$cat_v['name']}</option>

                    {/volist}

                </select>

           gt;

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

            레이어 =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>

4、示例:删除数据

controller代码

public function del(){

    $id = 요청::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">

    함수 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{

ㅋㅋㅋ        },'json');

        });

}

</script>

5. 정보 요청

현재 요청의 QUERY_STRING 매개변수 14 baseFile 현재 실행 중인 파일15root URL 액세스 루트 주소 16 rootUrl URL 액세스 루트 디렉터리 17 pathinfo 현재 요청의 경로 정보 URL 정보(URL 접미사 포함) 18 ext 현재 URL의 액세스 접미사 19 time 현재 요청 시간 가져오기 20 종류 현재 요청된 리소스 유형
일련번호methodinstructions
1host 현재 액세스 도메인 이름 또는 IP
2 구성표 현재 액세스 계약
3 port 현재 접근한 포트
4remotePort현재 요청한 REMOTE_PORT
5protocol 현재 요청한 SERVER_ PROTOCOL
6contentType 현재 요청 CONTENT_TYPE
7 domain 현재 프로토콜이 포함된 도메인 이름
8 subDomain 현재 방문한 하위 도메인
9 panDo main 현재 방문한 일반 도메인 이름
10 rootDomain 현재 방문 중인 루트 도메인 이름
11 url현재 전체 URL
12 baseUrl 현재 URL(QUERY_STRING 제외)
13 query
21 메서드 현재 요청 유형
22 rule 현재 요청의 라우팅 개체 인스턴스
23 컨트롤러 The 현재 요청의 컨트롤러 이름
24 action 현재 요청의 작업 이름
print_r( Request::host() );
print_r( Request::url() );
print_r( Request::controller() );
print_r( Request::action() );

6. HTTP 헤더 정보

  • HTTP 요청 헤더 정보의 이름은 대소문자를 구분하지 않으며, _는 자동으로 -로 변환됩니다.

rreee