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%)
-----


Sądziłam, że EntityType służy wyłącznie do tworzenia pola wyboru :/

Rozwiązałam problem, ale połowicznie v konstrukcji formularza użyłam. property_path

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


I to działa jeśli idzie o edycję encji. Jednak jesli chcę stworzyć encję i w tym celu wyprodukować pusty formularz:

  1. $cooperation = new Cooperation();
  2. $form = $this->createForm(CooperationType::class,$cooperation);


To dostaję błąd: PropertyAccessor requires a graph of objects or arrays to operate on, but it found type "NULL" while trying to traverse path "patient.id" at property "id".

Co jest zrozumiałe, bo ne ma żadnego obiektu patient z którego możnaby pobrać id.
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: 13.10.2025 - 16:53