Итак, у меня есть форма, созданная в своем собственном классе:
<?php
// src/AppBundle/Form/Type/CoffeeShopForm.php
namespace AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
...
class CoffeeShopType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class)
...
->add('save', SubmitType::class, array('label' => 'Create a coffee shop'))
->getForm();
;
}
}
И затем я использую его в одном контроллере
/**
* @Route("/admin/edit/{coffee_shop_id}")
*/
public function editCoffeeShopAction(Request $request, $coffee_shop_id)
{
$repository = $this->getDoctrine()->getRepository('AppBundle:CoffeeShop');
$coffeeshop = $repository->find($coffee_shop_id);
$form = $this->createForm(CoffeeShopType::class, $coffeeshop);
$form->get('name')->setData('New name value');
$form->handleRequest($request);
return $this->render('AppBundle:CoffeeController:edit_coffee_shop.html.twig', array(
'form' => $form->createView(),
));
}
Итак, в контроллере, как вы можете видеть, я могу изменить значение поля имени с помощью $form->get('name')->setData('New name value'); Мой вопрос в том, как я могу изменить метку поля SubmitType - я искал документацию по этой вещи, но не могу ее найти, и было бы очень полезно, если бы я мог повторно использовать эту форму, поскольку я использую ее для формы добавления а затем для формы редактирования, и в принципе это возможно в Zend Framework, поэтому я думаю, что это должно быть возможно и в Symfony.