这是应该将表单数据实际发送到数据库的方法, 但我无法弄清楚它为什么不起作用。没有出现错误,但数据没有插入表中。如果你能帮助我,我会很高兴的!
//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();
?>
答案 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();
也许是为了测试?是吗?