zend framework 2 参数接收及校验与过滤

 

1.参数的接收

例url如: http://test.com/user/getUser/1?a=3

//从路由配置中获取参数
$uid = $this->params()->fromRoute('id', 0);

//获取?后面的参数
$a = $this->params()->fromQuery('a', 0);

//获取post提交的参数
$a = $this->params()->fromPost('a', 0);

//获取上传的文件
$a = $this->params()->fromFiles('a', 0);


2.参数的校验和过滤

方法是使用校验器filter, 详见user.php 中getInputFilter()函数

使用效果:

例用户登录的功能中, url地址为如下

http://test.com/user/login?username=membersfafa1^*11E##1$\\&_+@324&password=111111&token=121212

 

代码如下:

//$username  = $this->params()->fromQuery('username', '');
    $request = $this->getRequest();
    if ($request->isPost())
    {
    $user = new User();
    $userModel = $this->getModel('Core\Model\UserModel');
    $form = new LoginForm();
    $form->setInputFilter($user->getInputFilter());
    $form->setData($data = $request->getPost(););
    if ($form->isValid())
    {
       echo "is ok";
    }
    else
    {
       echo "is err";
    }

   
    var_dump($form->getData());(1)
    var_dump($form->getMessages());(2)


输出说明:

 

echo 的输出:is err

 

其过滤的结果为 (1)的输出:

array(4) { ["username"]=>string(19) "membersfaf@a1 ^*11E" ["password"]=>string(0) "" ["id"]=> NULL ["submit"]=>NULL }

 

其校验的结果为(2)的输出:

 

array(1) { ["password"]=>array(1) { ["isEmpty"]=> string(36) "Value is required andcan't be empty" } }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值