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