Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony2][Symfony] buildForm i link w labelu
MateuszRyaN
post 29.05.2018, 12:04:39
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 10.11.2010
Skąd: Jastrzębie Zdrój

Ostrzeżenie: (0%)
-----


Witam panowie,
Na wstępie napiszę, że jestem zielony z Symfony. Próbuję zmodernizować tylko formularz kontaktowy na czyjejś, istniejącej już stronie.
W pliku ClientRequestType.php został dorzucony checkbox z labelem, w którym znajduje sie link. Problem taki, że przeglądarka nie wypluwa mi html'a.
  1. <?php
  2. namespace Custom\ContactBundle\Form\Type;
  3.  
  4. use Symfony\Component\Form\AbstractType,
  5. Symfony\Component\Form\CallbackValidator,
  6. Symfony\Component\Form\FormBuilder,
  7. Symfony\Component\Form\FormError,
  8. Symfony\Component\Form\FormInterface;
  9.  
  10. class ClientRequestType extends AbstractType
  11. {
  12. public function buildForm(FormBuilder $builder, array $options)
  13. {
  14. $builder->add('name', 'text', array('required'=>true, 'label'=>'contact_name','attr'=>array('placeholder'=>'Podaj swoje imię i nazwisko')))
  15. ->add('phone', 'text', array('required'=>true, 'attr'=>array('placeholder'=>'Podaj swój nr telefonu')))
  16. ->add('email', 'email', array('required'=>false, 'attr'=>array('placeholder'=>'Podaj swój adres email')))
  17. ->add('subject', 'hidden', array('required'=>false))
  18. ->add('message', null, array('required'=>true))
  19. ->add('captcha', 'captcha', array('attr'=>array('class'=>'captcha','placeholder'=>'Przepisz kod z obrazka')))
  20. ->add('t3_accept', 'checkbox', array('attr'=>array('class'=>'t-accept'), 'property_path' => false, 'label'=>'Oświadczam, że zapoznałem się z <a href="#" target="_blank" download>Klauzulą Informacyjną</a> i akceptuję jej treść.'))
  21. ;
  22.  
  23. $builder->addValidator(new CallbackValidator(function(FormInterface $form)
  24. {
  25. if (!$form["t3_accept"]->getData())
  26. {
  27. $form->addError(new FormError('Proszę zapoznać się z Klauzulą informacyjną'));
  28. }
  29. })
  30. );
  31.  
  32. }
  33.  
  34. public function getName()
  35. {
  36. return 'client_request';
  37. }
  38. }


W ścieżce /vendor/Symfony/src/Symfony/Bundle/FrameworkBundle/Resources/views/Form
Dokopałem się do pliku form_label.html.php:
  1. <?php if ($required) { $attr['class'] = (isset($attr['class']) ? $attr['class'] : '').' required'; } ?>
  2. <label <?php foreach ($attr as $k => $v) { printf('%s="%s" ', $view->escape($k), $view->escape($v)); } ?>><?php echo $view->escape($view['translator']->trans($label)) ?></label>

Czy tutaj można z nim podziałać?

Drugie pytanie, chociaż zapewne jest bardzo podstawowe. Po naniesieniu zmian w tych plikach, wystarczy wyczyścić katalog /app/cache/prod/twig/ czy czyści się cały katalog /app/cache/ questionmark.gif
Go to the top of the page
+Quote Post
Pyton_000
post 29.05.2018, 12:14:21
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Nie, nie możesz dotykać plików znajdujących się w vendor bo one zostaną nadpisane przy jakimś update.

Poczytaj to: https://symfony.com/doc/current/form/form_customization.html
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 17:23