beforeactionlist php,thinkphp5.0 获取信息,变量,绑定参数

1.构造函数:

控制器类必须继承了\think\Controller类,才能使用:

方法_initialize

代码:

namespace app\lian\controller;

use think\Controller;

use think\Db;

use think\Request;

class Index extends Controller

{

public function _initialize()

{

echo 'init|||';

}

public function hello()

{

return 'hello';

}

}

2.前置方法:

['except' => '方法名,方法名']:

表示这些方法不使用前置方法,

['only' => '方法名,方法名']:

表示只有这些方法使用前置方法。

*****分割线****

beforeActionList属性可以指定某个方法为其他方法的前置操作;

即执行之前执行;

代码:

namespace app\lian\controller;

use think\Controller;

use think\Db;

use think\Request;

class Index extends Controller

{

protected $beforeActionList = [

'first',

'second' => ['except'=>'hello'],

'three' => ['only'=>'hello'],

];

protected function first()

{

echo 'first
';

}

protected function second()

{

echo 'second
';

}

protected function three()

{

echo 'three
';

}

public function hello()

{

return 'hello';

}

}

本该只输出hello的,却因为前置操作,输出了three方法;

注意:这种操作,方法名必须小写;

3.获取URL信息

namespace app\lian\controller;

use think\Controller;

use think\Db;

use think\Request;

class Index extends Controller

{

public function index(){

$request = Request::instance();

// 获取当前域名

echo 'domain: ' . $request->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() . '
';

}

}

4.操作变量

获取PARAM变量

PARAM变量是框架提供的用于自动识别GET、POST或者PUT请求的一种变量获取方式,是系统推荐的获取请求参数的方法,用法如下:

可以通过Request对象完成全局输入变量的检测、获取和安全过滤~

// 获取当前请求的name变量

Request::instance()->param('name');

// 获取当前请求的所有变量(经过过滤)

Request::instance()->param();

// 获取当前请求的所有变量(原始数据)

Request::instance()->param(false);

// 获取当前请求的所有变量(包含上传文件)

Request::instance()->param(true);

//获取REQUEST变量

Request::instance()->request('id'); // 获取某个request变量

Request::instance()->request(); // 获取全部的request变量(经过过滤)

Request::instance()->request(false); // 获取全部的request原始变量数据

5.绑定参数

参数绑定方式默认是按照变量名进行绑定;

public function read($id)

{

return 'id ='.$id;

}

public function archive($year = '2017',$month = '07')

{

return 'year ='.$year.'$month ='.$month;

}

输入网址:

输出:

544

按照变量名进行参数绑定的参数必须和URL中传入的变量名称一致,但是参数顺序不需要一致

6.请求类型

ThinkPHP5.0 统一采用 think\Request类 处理请求类型。

获取请求类型:

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";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值