需要帮助理解getRequest()Zend Framework

时间:2010-06-25 04:46:44

标签: php zend-framework forms

我正在做这个教程: http://www.phpeveryday.com/articles/Zend-Framework-Database-Creating-Input-Form-P494.html

我们正在使用POST构建一个简单的输入表单并将其提交到mySQL数据库。一切都很好。我只想试着了解getRequest()函数。

在控制器中,我们有:

public function registerAction()
 {
    $request = $this->getRequest();

    $this->view->assign('action',"process");
    $this->view->assign('title','Member Registration');
    $this->view->assign('label_fname','First Name');
    $this->view->assign('label_lname','Last Name'); 
    $this->view->assign('label_uname','User Name'); 
    $this->view->assign('label_pass','Password');
    $this->view->assign('label_submit','Register');     
    $this->view->assign('description','Please enter this form completely:');        
}

然后在视图中:

 <form name="register" method="post" action="<?php echo $this->escape($this->action)?>">
  <table>
    <tr>
      <td><?php echo $this->escape($this->label_fname)?></td>
      <td><input type="text" name="first_name"></td>
    </tr>
    <tr>
      <td><?php echo $this->escape($this->label_lname)?></td>
      <td><input type="text" name="last_name"></td>
    </tr>   
    <tr>
      <td><?php echo $this->escape($this->label_uname)?></td>
      <td><input type="text" name="user_name"></td>
    </tr>   
    <tr>
      <td><?php echo $this->escape($this->label_pass)?></td>
      <td><input type="password" name="password"></td>
    </tr>   
  </table>
  <input type="submit" name="submit" value="<?php echo $this->escape($this->label_submit);?>">
  </form>

所以我不明白为什么我们需要一个getRequest()如果我已经有了method =“post”和动作集?如果我发表评论,脚本就不起作用了。我认为这是必要的,但我不明白为什么 - 特别是因为$ request变量似乎没有被使用?

1 个答案:

答案 0 :(得分:1)

在您提供的代码中,$ request似乎根本没有使用。我不明白为什么评论会破坏。

当你发表评论时会发生什么?

getRequest()函数用于获取Request对象,该对象为您提供参数等(即控制器,动作等);

修改

我看了一下教程,它有这个:

12   
13    $sql = "INSERT INTO `user`
14            (`first_name` , `last_name` ,`user_name` ,`password`)
15            VALUES
16            ('".$request->getParam('first_name')."', '".$request->getParam('last_name')."', '".$request->getParam('user_name')."', MD5('".$request->getParam('password')."'))";
17    $DB->query($sql);

你会注意到它使用$ request变量来获取参数: 'first_name','last_name','user_name','password'

并将它们保存到数据库中。