thinkphp5.0 を使用して情報、変数、バインド パラメーターを取得する

PHP中文网
リリース: 2023-03-11 06:08:02
オリジナル
2510 人が閲覧しました

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. プレメソッド:

['excel' => ; 'メソッド名, メソッド名']:

は、これらのメソッドがプレフィックスメソッドを使用しないことを意味します。

['only' => 'メソッド名, メソッド名']:

は、これらのメソッドのみがプレフィックスメソッドを使用することを意味します。

***********************************分割線************ ****** *************************

beforeActionList 属性は、他のメソッドの事前操作としてメソッドを指定できます。

コード :

<?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 つのメソッドが出力されます

注: この操作では、名前は小文字にする必要があります。

3. URL 情報を取得します

PARAM 変数を取得する

PARAM 変数は、GET、POST、または PUT リクエストを自動的に識別するためにフレームワークによって提供される変数取得メソッドです。システムが推奨するリクエストパラメータの取得方法は次のとおりです:

グローバル入力変数の検出、取得、セキュリティフィルタリングは、リクエストオブジェクト~

<?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;;  
}
}
ログイン後にコピー
// 获取当前请求的name变量
Request::instance()->param(&#39;name&#39;);
// 获取当前请求的所有变量(经过过滤)
Request::instance()->param();
// 获取当前请求的所有变量(原始数据)
Request::instance()->param(false);
// 获取当前请求的所有变量(包含上传文件)
Request::instance()->param(true);
ログイン後にコピー

5. デフォルトのパラメータバインドメソッドを通じて実行できます。変数名に従ってバインドすることです。

//获取REQUEST变量
Request::instance()->request(&#39;id&#39;); // 获取某个request变量
Request::instance()->request(); // 获取全部的request变量(经过过滤)
Request::instance()->request(false); // 获取全部的request原始变量数据
ログイン後にコピー

入力URL:

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

出力:

変数に従ってバインドされるパラメータ名前は URL で渡される変数名と一致している必要がありますが、パラメータの順序は一致している必要はありません

thinkphp5.0 を使用して情報、変数、バインド パラメーターを取得する

上記のエラーが報告された場合、エラーの理由は非常に単純です。操作メソッドでは id パラメーターを渡す必要がありますが、メソッドは URL パラメーター情報から正しい ID を取得できません。ユーザー入力を信頼できないため、読み取りメソッドの id パラメーターにデフォルト値を追加することをお勧めします

6. リクエスト タイプ

thinkphp5.0 を使用して情報、変数、バインド パラメーターを取得するThinkPHP5.0 は、リクエスト タイプを処理するために一律に thinkRequest クラスを使用します。

取得リクエストのタイプ:

<?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;
}
ログイン後にコピー

以上がthinkphp5.0 を使用して情報、変数、バインド パラメーターを取得するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート