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
wluczykuj
post
Post #2





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

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


Teraz jeszcze napotkalem taki sposob , czy to by było dobre? tylko jak to uzupelnic?

napisałeś ze moj kod ma sie ograniczac do :

  1. $entityManager->detach($entity);
  2. $entityManager->persist($entity);


czyli mam to jeszcze gdzies tu umieścic ? Staram sie to zrozumiec i jakoś poradzic sobie ale nie bardzo mi to wychodzi, w dobrą stronę podążam w ogole ?


(podeśle pastebina z dwoma przykladowymi encjami)

encja ktora ma byc kopiowana
http://pastebin.com/kYYhqXfe

encja ktora ma w sobie klucz obcy z powyzszej encji
http://pastebin.com/jTQtcBLn

kontroler
http://pastebin.com/g8EBeY1k


EDIT: to co zrobiłem teraz sam :

PlachtaController.php
-dodalem akcje cloneAction(Plachta $plachtum)
ponizej kod:

Akcja w kontrolerze:
  1. public function cloneAction(Plachta $plachtum){
  2.  
  3. $em = $this->getDoctrine()->getManager();
  4. $plachtas = $em->getRepository('AppBundle:Plachta')->find($plachtum);
  5. $cloneY = clone $plachtas;
  6.  
  7. //jak uzupelnić zeby moc to odpalić na stronie ? ? ?
  8.  
  9. }



Encja Plachta.php

  1. public function __clone(){
  2. if ($this->idPlachta) {
  3. $this->setIdPlachta(null);
  4. $this->x = clone $this->x; //co dac w miejsce x (IMG:style_emoticons/default/questionmark.gif) ?
  5. }
  6. }



Encja Przedmiot.php
  1. public function __clone(){
  2. if ($this->id) { //co dac w miejsce id ?
  3. $this->setId(null); //co dac w miejsce setId (IMG:style_emoticons/default/questionmark.gif)
  4. }
  5. }

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: 15.10.2025 - 23:50