Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Doctrine] Wyświetlenie usunietego rekordu, Jak wyświetlić usunięty rekord z bazy
Sajrox
post 28.07.2009, 21:14:52
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Wydaje mi się że gdzieś widziałem że można tego dokonać ale nie mogę nigdzie znaleźć sad.gif
Chodzi o Wyświetlenie rekordu w formie tablicy po jego usunięciu z bazy

  1. <?php
  2. $q = Doctrine_Query::create();
  3. $q    ->delete('ForumPosty')
  4.       ->where('id = ?', $this->id);
  5.                
  6.      $numDeleted = $q->execute();    
  7.      
  8.      if ($numDeleted > 0)
  9.           $row = $q->toArray();
  10. ?>


Chodzi o to by w zmiennej $row była tablica z krotką z bazy którą usunąłem. Powyższy kod nie działa gdyż pisze że metoda toArray() nie jest poprawna.
Go to the top of the page
+Quote Post
murwazy
post 4.08.2009, 08:52:14
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

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


chyba nie do konca rozumiem co chcesz osiagnac ale ja bym najpierw odczytal rekord, a dopiero pozniej go kasowal
Go to the top of the page
+Quote Post
l3l0
post 4.08.2009, 09:27:29
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

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


Witam powyższy przykład może działać gdy używasz behaviora SoftDelete w Doctrine http://www.doctrine-project.org/documentat...iors:softdelete. Wtedy tak naprawde nie usuwasz rekordu tylko ustawiasz mu flage deleted.
Go to the top of the page
+Quote Post
murwazy
post 4.08.2009, 22:44:10
Post #4





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

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


Cytat(l3l0 @ 4.08.2009, 10:27:29 ) *
Witam powyższy przykład może działać gdy używasz behaviora SoftDelete w Doctrine http://www.doctrine-project.org/documentat...iors:softdelete. Wtedy tak naprawde nie usuwasz rekordu tylko ustawiasz mu flage deleted.

owszem, ciagle nie widze sensu w kasowaniu a nastepnie potrzebie odczytania rekordu...
Go to the top of the page
+Quote Post
dr_bonzo
post 4.08.2009, 22:52:45
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Czemu nie?

Np usun komentarz a potem redirect do posta od tego kometarza (komentarz->post_id) itp.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
murwazy
post 5.08.2009, 14:25:30
Post #6





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

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


Cytat(dr_bonzo @ 4.08.2009, 23:52:45 ) *
Czemu nie?

Np usun komentarz a potem redirect do posta od tego kometarza (komentarz->post_id) itp.

bo to nielogiczne kolego smile.gif
lepiej sie pilnowac w takich sprawach, szkoda czasu na szukanie glupiego bledu
Go to the top of the page
+Quote Post
Sajrox
post 5.08.2009, 21:30:25
Post #7





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Generalnie chodzi mi o to że chciałbym prowadzić logi kto co kiedy usunął. Ale faktycznie można to zrobić w ten sposób że najpierw odczytuje rekord a następnie go usuwam i tak to rozwiązałem w ostateczności.

Sądziłem że można to zrobić w ten sposób jak pisałem, troche mnie kodu i nie musiał bym robic dodatkowego zapytania do bazy.
Go to the top of the page
+Quote Post
dr_bonzo
post 5.08.2009, 21:34:13
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


A nie masz tam czasem triggerow beforeDelete/afterDelete itp?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Sajrox
post 6.08.2009, 00:06:18
Post #9





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

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


Tam czyli gdzie questionmark.gif Nie słyszałem o czymś takim w Doctrine. :/
Go to the top of the page
+Quote Post
Zyx
post 6.08.2009, 07:28:13
Post #10





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Sajrox -> nie da się pobrać wiersza samym zapytaniem DELETE w SQL-u, to Doctrine tym bardziej nie będzie czegoś takiego potrafić. Zapytanie SELECT w tej czy innej formie jest niezbędne. Jeśli chodzi o drugi problem, to widocznie słabo szukałeś, bo coś takiego w Doctrine jest i ma się dobrze. Szczegóły i przykłady użycia masz tutaj:

http://www.doctrine-project.org/documentat...rs#record-hooks


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
viking
post 6.08.2009, 07:47:07
Post #11





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Cytat(Zyx @ 6.08.2009, 08:28:13 ) *
Sajrox -> nie da się pobrać wiersza samym zapytaniem DELETE w SQL-u


Ja bym raczej powiedział "... w mysql". Autor nie napisał jaka baza. W Oracle'u czy Postgresie jest składnia DELETE...RETURNING. I oczywiście przerasta to możliwości Doctrine.


--------------------
Go to the top of the page
+Quote Post
murwazy
post 6.08.2009, 10:20:47
Post #12





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 13.04.2007
Skąd: Szczecin

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


Cytat(Sajrox @ 6.08.2009, 01:06:18 ) *
Tam czyli gdzie questionmark.gif Nie słyszałem o czymś takim w Doctrine. :/

przeczytaj cala dokumentacje, a pozniej bierz sie za kodowanie - bedziesz mial rozeznanie w mozliwosciach.
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: 24.04.2024 - 19:14