我正在使用symfony 3和formbuilder。
我创建了一个EditAction来编辑服务:
/**
* @Route("/admin/service/edit/{id}", requirements={"id": "\d+"}, name="edit_service")
*/
public function EditAction($id , Request $request){
$service = $this->getDoctrine()
->getRepository('AppBundle:Services')
->findOneById($id);
$form = $this->get('form.factory')->createNamedBuilder('edit_service', ServiceType::class)->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()){
die("OK"):
}
return $this->render('AppBundle:Admin:EditService.html.twig', [
'service' => $service,
'form' => $form->createView(),
]);
}现在将使用以下命令创建表单:
class ServiceType extends AbstractType{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options){
$builder
->add('title', TextType::class, [
'attr' => ['autofocus' => true],
'label' => 'service.title',
])
->add('text', TextareaType::class, [
'attr' => [ 'pattern' => '.{10,}' , 'rows' => '10'],
'label' => 'service.text',
])
->add('submit', SubmitType::class, [
'attr' => ['class' => 'btn btn-lg btn-primary'],
'label' => 'submit',
])
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Services::class,
]);
}
}现在,我正在尝试获取每个输入的当前值。
我还用它来添加一个服务。
下面是我对小树枝的用法:
{{ form_start(form) }}{{ form_end(form) }}我尝试了不同的方法,但没有成功。谢谢
发布于 2016-08-18 23:26:17
获取表单的输入值有几种不同的方法:
$form->getData()['your_field_name'] $form->get('your_field_name');发布于 2016-08-18 22:17:22
$form->getData()是您正在寻找的http://symfony.com/doc/current/forms.html方法
if ($form->isSubmitted() && $form->isValid()){
$formData = $form->getData();
die($formData['field_name']);
}或者像@pavlovich建议的那样
if ($form->isSubmitted() && $form->isValid()){
die($form->get('field_name');
}发布于 2016-08-30 16:54:59
这很简单,我只是这样做:
$service = $this->getDoctrine()
->getRepository('AppBundle:Services')
->findOneById($id);
$form = $this->get('form.factory')->createNamedBuilder('edit_service', ServiceType::class , $service)->getForm();https://stackoverflow.com/questions/39020434
复制相似问题