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