thinkphp 5.0 Request使用
1.使用前需先导入类,use think\Request;
// 1. 系统建议的request方式 public function requestTest($name , Request $request){ // 系统自动注入request对象 不需要通过url传入 echo "name : " . $name . "<br />"; echo "请求的url : " .$request -> url() . "<br />" ; var_dump( $request -> param()); // 使用系统提供的助手 直接创建request对象调用该对象方法 echo request() -> url(); } // 2. 动态绑定属性 // 可以给request请求对象绑定属性 ,方便全局调用, 例如我们可以在公共控制器中绑定当前登录的用户的模型到请求对象 // 3. 获取请求变量 // 系统推荐使用param方法统一获取当前请求变量,该方法最大的优势是让你不需要区分当前请求类型而使用不同的全局变量或者方法,并且可以满足大部分的参数需求. public function requestParam(Request $request , $name , $sex ){ // 使用param 获取请求参数 返回值:数组 $paramArr = $request -> param(); echo "name:参数:" .$paramArr ["name"] ."<br />"; echo "sex :参数:" .$paramArr ["sex"] . "<br />"; dump( $request -> param()); echo "<br />"; // 系统提供了一个input助手函数来简化Request对象的param方法,用法如下: // param方法获取的参数会自动判断当前的请求,以POST请求为例的话,参数的优先级别为:路由变量 > 当前请求变量($_POST变量) > $_GET变量 // 这里的路由变量指的是路由规则里面定义的变量或者PATH_INFO地址中的变量。路由变量无法使用get方法或者$_GET变量获取。 dump(input()); echo "name : " .input()["name"] ."<br />"; echo "sex : " .input()["sex"] ."<br />"; // 除了Param方法之外,Request对象也可以用于获取其它的输入参数,例如: echo "GET参数:" . "<br />"; dump($request -> get()); echo "POST参数:" ."<br />"; dump($request -> post()); // 获取请求方法 echo $request -> method() ."<br />"; // 获取请求资源类型 echo $request -> type() . "<br />"; // 获取访问ip echo $request -> ip() ."<br />"; // 是否ajax请求 echo var_export($request -> isAjax(),true) . "<br />"; // 请求包含name dump( $request -> only(['name'])); echo "<br />"; // 排除name dump($request -> except(['name'])); echo "<br />"; // 获取url信息 // 获取当前域名 echo 'domain: ' . $request->domain() . '<br/>'; // 获取当前入口文件 echo 'file: ' . $request->baseFile() . '<br/>'; // 获取当前URL地址 不含域名 echo 'url: ' . $request->url() . '<br/>'; // 获取包含域名的完整URL地址 echo 'url with domain: ' . $request->url(true) . '<br/>'; // 获取当前URL地址 不含QUERY_STRING echo 'url without query: ' . $request->baseUrl() . '<br/>'; // 获取URL访问的ROOT地址 echo 'root:' . $request->root() . '<br/>'; // 获取URL访问的ROOT地址 echo 'root with domain: ' . $request->root(true) . '<br/>'; // 获取URL地址中的PATH_INFO信息 echo 'pathinfo: ' . $request->pathinfo() . '<br/>'; // 获取URL地址中的PATH_INFO信息 不含后缀 echo 'pathinfo: ' . $request->path() . '<br/>'; // 获取URL地址中的后缀信息 echo 'ext: ' . $request->ext() . '<br/>'; // 获取当前模块/控制器/操作方法信息 echo '模块:'.$request->module(); echo "<br/>控制器:".$request->controller(); echo "<br/>操作:".$request->action();
#付出不亚于任何人的努力#将来的我、一定会感谢现在努力拼搏的自己!