我正在做这个教程: 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变量似乎没有被使用?
答案 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'
并将它们保存到数据库中。