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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章