Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2][Symfony3]Jak wywołać funkcje __clone() w Symfony 3?
wluczykuj
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 13.12.2016

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


Cześć, mam takie pytanie :

Potrzebuje sklonować/skopiować rekord w bazie danych za pomocą np. przycisku w aplikacji . W danym kontrolerze zrobiłem funckje private function cloneAction(Grid $grid) , tylko z racji, że nie jestem w tym biegły nie wiem jak wywołać ją na stronie żeby po przyciśnięciu przycisku dany rekord mi się skopiował. Zależy mi aby przycisk [kopiuj] pojawił się na wygenerowanej stronie np show.html.twig . Czy mógłby ktoś mi w tym pomóc, doradzić ? To kod jaki mam, czy w ogole on jest w porzadku ?

EDIT: nalezy użyć metody __clone()? jesli tak to w jaki sposob ?

  1. private function cloneAction(Grid $grid){
  2. $oldGrid= ($grid);
  3. $newGrid= clone $oldGrid;
  4.  
  5. return $this->render('grid/show.html.twig', array(
  6. 'newGrid' => $newGrid
  7.  
  8. ));
  9. }


Ten post edytował wluczykuj 13.12.2016, 20:52:32
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


1. Jak stawiasz "goły" framework to już masz default controller z gotową akcją, skopiować, podmienić routing, podlinkować przycisk - 5 minut, w dokumentacji jest to dobrze opisane, jeśli masz tu braki to powinieneś zacząć od podstaw.
2. Twój kod kopiowania encji na początek powinien się ograniczyć do:
  1. $entityManager->detach($entity);
  2. $entityManager->persist($entity);
- i powinieneś przeanalizować jak to działa, praca z encjami jest ładnie opisana:
http://symfony.com/doc/current/doctrine.html
3. "chcę powielić wszystko" - czyli całą bazę danych? Bo prawie każdy rekord ma "createdBy", więc powielisz też usera, jak powielisz usera to i wszystkie rekordy które on stworzył, potem relacje z tych rekordów i w ten sposób powielisz całą bazę danych (IMG:style_emoticons/default/smile.gif) Dlatego trzeba wiedzieć dokładnie, jakie encje mają być "detach" bo nawet, jeśli dziś nie ma żadnej relacji to ktoś ją może w przyszłości dodać, rozbudowując funkcjonalność aplikacji.
4. Robienie serwisów i wywoływanie ich w kontrolerach jest dobrym pomysłem

Spróbuj po prostu napisać kawałek kodu i zobacz jak to działa.

Ten post edytował Pilsener 16.12.2016, 08:22:31
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: 6.10.2025 - 13:33