Zend Framework 2发布表格

时间:2014-04-09 02:44:00

标签: php zend-framework2

这是应该将表单数据实际发送到数据库的方法, 但我无法弄清楚它为什么不起作用。没有出现错误,但数据没有插入表中。如果你能帮助我,我会很高兴的!

//method to add data to the database
public function addAction() {


      //add user info
    $form = new UserForm();
    $form->get('submit')->setValue('add new info');

    $request = $this->getRequest();
    if($request->isPost()){
        $user = new User();
        $form->setData($request->getPost());

        if($form->isValid()){
            $user->exchangeArray($form->getData());//method that gets the validated data
            $this->getUserTable()->saveUser($user);

            return $this->redirect()->toRoute('application',array(
                'controller'=>'user',
                'action'=>'index'
            ));
        }
    }

    //pass it to the view 
    $values = array('form'=>$form);

    $view = new ViewModel($values);
    return $view;
}

观看add.phtml

$form = $this->form;

$form->setAttribute('action', $this->url(
                'application', array(
            'controller' => 'user',
            'action' => 'add',
                )
));
echo $this->form()->openTag($form);
echo $this->formHidden($form->get('id'));
echo $this->formRow($form->get('name'));
echo $this->formRow($form->get('email'));

echo $this->formSubmit($form->get('submit'));
echo $this->form()->closeTag();
?>

1 个答案:

答案 0 :(得分:1)

 $user = new User();
//user class contains the user information that you can store in the db 
$user->name = "Anime lover";
$user->email = "Anime mail";
$this->getUserTable()->saveUser($user);

$view = new ViewModel($values);
return $view; <- because of this return

--------------你永远不会在这里传递----------------------

 //add user info etc....
 $form = new UserForm();

也许是为了测试?是吗?