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

来源:互联网 发布:淘宝卖家遇到的骗局 编辑:程序博客网 时间:2024/06/14 20:43

 

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

 

原创粉丝点击