>  기사  >  백엔드 개발  >  thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기

thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기

PHP中文网
PHP中文网원래의
2017-06-27 10:07:592448검색

1. 생성자:

컨트롤러 클래스는 다음을 사용하기 위해 thinkController 클래스를 상속해야 합니다:

method_initialize

코드:

<?php
namespace appliancontroller;use thinkController;use thinkDb;use thinkRequest;class Index extends Controller
{   
public function _initialize()
    {        echo &#39;init|||&#39;;
    }    
    public function hello()
    {        return &#39;hello&#39;;
    }
}

출력을 살펴보세요: thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기

2. ; '메소드 이름, 메소드 이름']:

은 해당 메소드가 접두사 메소드를 사용하지 않는다는 의미입니다.

['only' => '메소드 이름, 메소드 이름']:

은 해당 메소드만 접두사 메소드를 사용한다는 의미입니다.

**********************************선 나누기************ **** *************************

beforeActionList 속성은 다른 메소드에 대한 사전 작업으로 메소드를 지정할 수 있습니다.

는 실행을 의미합니다.

code :

<?php
namespace appliancontroller;use thinkController;use thinkDb;use thinkRequest;class Index extends Controller
{protected $beforeActionList = [        &#39;first&#39;,
        &#39;second&#39; =>  [&#39;except&#39;=>&#39;hello&#39;],
        &#39;three&#39;  =>  [&#39;only&#39;=>&#39;hello&#39;],
    ];    
    protected function first()
    {        echo &#39;first<br/>&#39;;
    }    
    protected function second()
    {        echo &#39;second<br/>&#39;;
    }    
    protected function three()
    {        echo &#39;three<br/>&#39;;
    }    public function hello()
    {        return &#39;hello&#39;;
    }
    

    
}

출력을 살펴보세요.

thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기 hello만 출력해야 하지만 이전 작업으로 인해 세 가지 메서드가 출력됩니다.

참고: 이 작업의 경우 메서드 이름은 다음과 같습니다.

3. URL 정보 가져오기

<?php
namespace appliancontroller;
use thinkController;
use thinkDb;
use thinkRequest;

class Index extends Controller
{
public function index(){
$request = Request::instance();
// 获取当前域名
echo &#39;domain: &#39; . $request->domain() . &#39;<br/>&#39;;
// 获取当前入口文件
echo &#39;file: &#39; . $request->baseFile() . &#39;<br/>&#39;;
// 获取当前URL地址 不含域名
echo &#39;url: &#39; . $request->url() . &#39;<br/>&#39;;
// 获取包含域名的完整URL地址
echo &#39;url with domain: &#39; . $request->url(true) . &#39;<br/>&#39;;
// 获取当前URL地址 不含QUERY_STRING
echo &#39;url without query: &#39; . $request->baseUrl() . &#39;<br/>&#39;;
// 获取URL访问的ROOT地址
echo &#39;root:&#39; . $request->root() . &#39;<br/>&#39;;
// 获取URL访问的ROOT地址
echo &#39;root with domain: &#39; . $request->root(true) . &#39;<br/>&#39;;
// 获取URL地址中的PATH_INFO信息
echo &#39;pathinfo: &#39; . $request->pathinfo() . &#39;<br/>&#39;;
// 获取URL地址中的PATH_INFO信息 不含后缀
echo &#39;pathinfo: &#39; . $request->path() . &#39;<br/>&#39;;
// 获取URL地址中的后缀信息
echo &#39;ext: &#39; . $request->ext() . &#39;<br/>&#39;;  
}
}

4. 변수 조작

PARAM 변수 가져오기

PARAM 변수는 GET, POST 또는 PUT 요청을 자동으로 식별하기 위해 프레임워크에서 제공하는 변수 가져오기 방법입니다. 요청 매개변수를 얻는 권장 방법은 다음과 같습니다.

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

// 获取当前请求的name变量
Request::instance()->param(&#39;name&#39;);
// 获取当前请求的所有变量(经过过滤)
Request::instance()->param();
// 获取当前请求的所有变量(原始数据)
Request::instance()->param(false);
// 获取当前请求的所有变量(包含上传文件)
Request::instance()->param(true);
//获取REQUEST变量
Request::instance()->request(&#39;id&#39;); // 获取某个request变量
Request::instance()->request(); // 获取全部的request变量(经过过滤)
Request::instance()->request(false); // 获取全部的request原始变量数据

5. 매개변수 바인딩

기본 매개변수 바인딩 방법은 다음과 같습니다.

<?php
public function read($id)
{
    return &#39;id =&#39;.$id;
    
}
public function archive($year = &#39;2017&#39;,$month = &#39;07&#39;)
{
    return &#39;year =&#39;.$year.&#39;$month =&#39;.$month;
}

입력 URL:

http://localhost/index.php/lian/index/read/id/544

출력:

thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기변수 이름에 따라 바인딩된 매개변수는 다음과 같습니다. URL에 전달된 변수 이름과 일치해야 하지만, 매개변수 순서는 일치할 필요가 없습니다

thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기위 오류가 보고되면 오류의 원인은 매우 간단합니다. 왜냐하면 읽기 작업 메서드를 실행할 때이기 때문입니다. , id 매개변수를 전달해야 하지만 메소드가 URL 주소 매개변수 정보에서 올바른 ID를 얻을 수 없습니다. 사용자 입력을 신뢰할 수 없으므로 읽기 메소드

6의 id 매개변수에 기본값을 추가하는 것이 좋습니다. 요청 유형

ThinkPHP5.0은 요청 유형을 처리하기 위해 thinkRequest 클래스를 일률적으로 사용합니다.

요청 유형 받기:

public function hq()
{
// 是否为 GET 请求
if (Request::instance()->isGet()) echo "当前为 GET 请求";
// 是否为 POST 请求
if (Request::instance()->isPost()) echo "当前为 POST 请求";
// 是否为 PUT 请求
if (Request::instance()->isPut()) echo "当前为 PUT 请求";
// 是否为 DELETE 请求
if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
// 是否为 Ajax 请求
if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";
// 是否为 Pjax 请求
if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";
// 是否为手机访问
if (Request::instance()->isMobile()) echo "当前为手机访问";
// 是否为 HEAD 请求
if (Request::instance()->isHead()) echo "当前为 HEAD 请求";
// 是否为 Patch 请求
if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
// 是否为 OPTIONS 请求
if (Request::instance()->isOptions()) echo "当前为 OPTIONS 请求";
// 是否为 cli
if (Request::instance()->isCli()) echo "当前为 cli";
// 是否为 cgi
if (Request::instance()->isCgi()) echo "当前为 cgi";
    
}

위 내용은 thinkphp5.0을 사용하여 정보, 변수 및 바인딩 매개변수 얻기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.