学习来源与说明
https://www.kancloud.cn/thinkphp/thinkphp5_quickstart
测试与部署均在windows10下进行学习。
快速入门第三节
获取当前的请求信息的四种方案
继承think\Controller
request->url() . '
'; return 'Hello,' . $name . '!'; } }
访问界面并传递参数:http://127.0.0.1/index/index/hello/name/123,网页获取name值为123,输出了请求的url。
自动注入请求对象
方法带入形参
url() . '
'; return 'Hello,' . $name . '!'; } }
使用助手函数
系统提供的方法
url() . '
'; return 'Hello,' . $name . '!'; } }
动态绑定属性
方便全局调用(未直接示例)
制作Base控制器:
bind('user',$user); } }
其它控制器中调用:
user->id; echo $request->user->name; } }
获取请求变量
参数信息与输出:
param()); echo 'name:'.$request->param('name'); } }
输入访问网址:http://127.0.0.1/index/index/hello/name/123/test/ddd
输出效果:
使用input助手函数代替$request->param()
过滤变量
public function hello(Request $request) { echo 'name:'.$request->param('name','World','strtolower'); echo '
test:'.$request->param('test','thinkphp','strtoupper'); }
获取其它参数
get()); echo 'GET参数:name'; dump($request->get('name')); echo 'POST参数:name'; dump($request->post('name')); echo 'cookie参数:name'; dump($request->cookie('name')); echo '上传文件信息:image'; dump($request->file('image')); } }
method() . '
'; echo '资源类型:' . $request->type() . '
'; echo '访问IP:' . $request->ip() . '
'; echo '是否AJax请求:' . var_export($request->isAjax(), true) . '
'; echo '请求参数:'; dump($request->param()); echo '请求参数:仅包含name'; dump($request->only(['name'])); echo '请求参数:排除name'; dump($request->except(['name'])); } }
domain() . '
'; // 获取当前入口文件 echo 'file: ' . $request->baseFile() . '
'; // 获取当前URL地址 不含域名 echo 'url: ' . $request->url() . '
'; // 获取包含域名的完整URL地址 echo 'url with domain: ' . $request->url(true) . '
'; // 获取当前URL地址 不含QUERY_STRING echo 'url without query: ' . $request->baseUrl() . '
'; // 获取URL访问的ROOT地址 echo 'root:' . $request->root() . '
'; // 获取URL访问的ROOT地址 echo 'root with domain: ' . $request->root(true) . '
'; // 获取URL地址中的PATH_INFO信息 echo 'pathinfo: ' . $request->pathinfo() . '
'; // 获取URL地址中的PATH_INFO信息 不含后缀 echo 'pathinfo: ' . $request->path() . '
'; // 获取URL地址中的后缀信息 echo 'ext: ' . $request->ext() . '
'; return 'Hello,' . $name . '!'; } }
public function hello(Request $request, $name = 'World') { echo '模块:'.$request->module(); echo '
控制器:'.$request->controller(); echo '
操作:'.$request->action(); }
使用助手函数的示例:
响应对象
自动输出xml,json等格式的响应
修改默认输出类型:'default_return_type' => 'json',//或者为xml等(config.php)
然后设计如下控制器:
'thinkphp', 'status' => '1']; return $data; } }
输出:
手动输出各种格式响应
不需要配置config.php,直接建立如下控制器即可完成相同输出。
'thinkphp', 'status' => '1']; return json($data); } }
也可以手动输出带状态返回码在内的其它信息的响应格式
'thinkphp', 'status' => '1']; return json($data, 201, ['Cache-control' => 'no-cache,must-revalidate']); } }
页面跳转方法
success('欢迎使用ThinkPHP5.0','hello'); } else { $this->error('错误的name','guest'); } } public function hello() { return 'Hello,ThinkPHP!'; } public function guest() { return 'Hello,Guest!'; } }
以上代码引入的traits\controller\Jump,使用success和error,输出了表情、提示信息,然后3秒跳转到指定的方法。
在traits\controller\Jump中,页面重定向的方法为:
$this->redirect('http://thinkphp.cn');
直接重新定向到指定页面。
系统也提供了助手函数有同样效果:
redirect('http://thinkphp.cn')