这是我的表格,我有一个从1到5的单选按钮(非常糟糕到非常好)
parent::__construct($name);
$this->setAttribute('method', 'post');
$this->add(array(
'type' => 'Zend\Form\Element\Radio',
'name' => 'rate_box',
'options' => array(
'label' => 'Please choose your rate',
'value_options' => array(
'1' => ' Very Bad',
'2' => ' Bad',
'3' => ' Fine',
'4' => ' Good',
'5' => ' Very Good',
),
),
'attributes' => array(
'value' => '1' //set checked to '1'
)
));
$this->add(array(
'name' => 'submit',
'type' => 'Submit',
'attributes' => array(
'id' => 'submit',
'class' => 'btn btn-primary',
),
));
这是我的控制器的相关部分
$form = new VoteForm();
$request = $this->getRequest();
if ($request->isPost())
{
$form->setData($request->getPost());
if ($form->isValid())
{
$formdata = $form->getData();
$vote = new Vote();
$data = $vote->getArrayCopy();
$data['user_id'] = $user_id;
$data['voted_user_id'] = $voted_user_id;
$data['ratescore'] = $formdata['rate_box']; //Here I take the value of radion button
$vote->populate($data);
try
{
$this->getEntityManager()->persist($vote);
$this->getEntityManager()->flush();
return $this->redirect()->toRoute('home',array('user_id' => $user_id,
'action' => 'home',
));
}
catch(DBALException $e){
}
}
}
为什么我无法检索" rate_box"并保存到我的$ data [' ratescore']? 谢谢!
答案 0 :(得分:0)
我几小时前就遇到过这个问题。您可以尝试使用动作中的原生$ _POST ['rate_box']来检索单选按钮的值。 所以,在你的控制器中:
public function yourAction() {
$form = new VoteForm();
if($this->getRequest->isPost()) {
$data = $this->getRequest->getPost();
if($form->isValid($data)) {
$rate = $_POST['rate_box'];
// another code..
}
}
}
希望这会有所帮助.. :)