нужна помощь в понимании getRequest () Zend Framework - PullRequest
0 голосов
/ 25 июня 2010

Я делаю этот урок: 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 Ответ

1 голос
/ 25 июня 2010

В указанном вами коде $ 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'

и сохраняет их в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...