Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Formularz z kolekcją ale trochę inaczej
JoShiMa
post
Post #1





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Otóż mam taki problem. Z bazy pobieram informację o pewnej grupie użytkowników. Będę te informacje wyświetlać w tabeli. W jednym z pół tabeli ma się znaleźć niewielki TextArea za pomocą którego (via AJAX) zostanie do bazy dopisany komentarz dotyczący wybranego użytkownika.

I teraz tak. Wymyśliłam sobie, że cała tabelka powinna być formularzem a te pola TextArea powinny być kolekcją. Tylko jak zrobić, żeby indeksy odpowiadały ID usera. Czyli jesli w tabelce mam userów o id 5,12 i 17 to chcę miec tam pola

  1. <textarea id="form_comment_5" name="form[comment][5]" ></textarea>
  2. <textarea id="form_comment_12" name="form[comment][12]"></textarea>
  3. <textarea id="form_comment_17" name="form[comment][17]"></textarea>


A może to bez sensu robić to za pomocą FormBuildera skoro i tak będzie obsłużone AJAX-em?

Ten post edytował JoShiMa 9.12.2017, 23:05:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
JoShiMa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Rzeczywiście mój błąd. chciałabym Cię jeszcze poprosić o pomoc w jednej sprawie.

Mam dwie encje połączone taką relacją:

  1. class User extends BaseUser
  2. {
  3. ...
  4. /**
  5.   * @var Article[]|ArrayCollection
  6.   *
  7.   * @ORM\OneToMany(targetEntity="Cooperation", mappedBy="patient", cascade={"ALL"})
  8.   */
  9. private $therapists;
  10.  
  11. /**
  12.   * @var Article[]|ArrayCollection
  13.   *
  14.   * @ORM\OneToMany(targetEntity="Cooperation", mappedBy="therapist", cascade={"ALL"})
  15.   */
  16. private $patients;
  17. }
  18.  


  1. class Cooperation
  2. {
  3. /**
  4.   * @ORM\Id
  5.   * @ORM\ManyToOne(targetEntity="User", inversedBy="therapists")
  6.   * @ORM\JoinColumn(name="patient", referencedColumnName="id")
  7.   */
  8. private $patient;
  9.  
  10. /** @ORM\Id
  11.   * @ORM\ManyToOne(targetEntity="User", inversedBy="patients")
  12.   * @ORM\JoinColumn(name="therapist", referencedColumnName="id")
  13.   */
  14. private $therapist;
  15.  
  16. ...


Próbuję zrobić do tego pewien formularz.

Jeśli zrobię to tak:

  1. public function buildForm(FormBuilderInterface $builder, array $options)
  2. {
  3. $builder
  4. ->add('patient', HiddenType::class)
  5. ->add('therapist', HiddenType::class)
  6. ->add('comment', TextareaType::class, [
  7. 'label' => false,
  8. 'attr' => [
  9. 'class' => 'form-control add-comment',
  10. 'rows' => '4',
  11. 'cols' => '20',
  12. ],
  13. ]);
  14.  


to wtedy mam po wygenerowaniu formularza w tych polach mam w wartości 'username' zamiast 'id'. Jeśli taki formularz wyślę ajaxem to nijak nie umiem go zwalidować.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 17.10.2025 - 09:57