Request对象支持获取当前的请求信息,包括:
| 方法 | 含义 | 
|---|---|
| host | 当前访问域名或者IP | 
| scheme | 当前访问协议 | 
| port | 当前访问的端口 | 
| remotePort | 当前请求的REMOTE_PORT | 
| protocol | 当前请求的SERVER_PROTOCOL | 
| contentType | 当前请求的CONTENT_TYPE | 
| domain | 当前包含协议的域名 | 
| subDomain | 当前访问的子域名 | 
| panDomain | 当前访问的泛域名 | 
| rootDomain | 当前访问的根域名 | 
| url | 当前完整URL | 
| baseUrl | 当前URL(不含QUERY_STRING) | 
| query | 当前请求的QUERY_STRING参数 | 
| baseFile | 当前执行的文件 | 
| root | URL访问根地址 | 
| rootUrl | URL访问根目录 | 
| pathinfo | 当前请求URL的pathinfo信息(含URL后缀) | 
| ext | 当前URL的访问后缀 | 
| time | 获取当前请求的时间 | 
| type | 当前请求的资源类型 | 
| method | 当前请求类型 | 
| rule | 当前请求的路由对象实例 | 
对于上面的这些请求方法,一般调用无需任何参数,但某些方法可以传入true参数,表示获取带域名的完整地址,例如:
use think\facade\Request;// 获取完整URL地址 不带域名Request::url();// 获取完整URL地址 包含域名Request::url(true);// 获取当前URL(不含QUERY_STRING) 不带域名Request::baseFile();// 获取当前URL(不含QUERY_STRING) 包含域名Request::baseFile(true);// 获取URL访问根地址 不带域名Request::root();// 获取URL访问根地址 包含域名Request::root(true);注意
domain方法的值本身就包含协议和域名
可以通过请求对象获取当前请求的控制器/操作名。
| 方法 | 含义 | 
|---|---|
| controller | 当前请求的控制器名 | 
| action | 当前请求的操作名 | 
获取当前控制器
Request::controller();返回的是控制器的驼峰形式(首字母大写),和控制器类名保持一致(不含后缀)。
如果需要返回小写可以使用
Request::controller(true);如果要返回小写+下划线的方式,可以使用
parse_name(Request::controller());获取当前操作
Request::action();返回的是当前操作方法的实际名称,如果需要返回小写可以使用
Request::action(true);如果要返回小写+下划线的方式,可以使用
parse_name(Request::action());如果使用了多应用模式,可以通过下面的方法来获取当前应用
app('http')->getName();