Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] Formularz i id
blackroger
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 8.11.2008

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


Czy jest możliwość wymuszenia i zablokowania id w danym modelu już podczas tworzenia samego formularza? Chodzi o to że potrzebuje znać id rekordu jeszcze przed jego zapisem do bazy. Rekord jest nowy.

ORM - Doctrine.

Wiem że obiekt łączony z bazą tworzy się dopiero w momencie wywołania metody save(), ale czy da się to ominąć i dostać id wcześniej?

Ten post edytował blackroger 29.09.2010, 23:13:08
Go to the top of the page
+Quote Post
mdco
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

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


Nie da się.

ID rekordu nadaje się po wykonaniu zapytania INSERT. Oczywiście można znaleźć ostatni ID w tabeli przez zapytanie SELECT MAX(id) ale jest to niepewne, gdyż w czasie miedzy SELECT MAX(id) a INSERT może wykonać się inny INSERT do tej tabeli. Poza tym może być dziura w ciągłości ID (jeżeli pole jest autoincrement), na skutek wcześniejszego wykasowania rekordu z tej tabeli.

Ten post edytował mdco 30.09.2010, 12:22:04
Go to the top of the page
+Quote Post
Juzek
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 1.08.2007

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


Da się.

W akcji definiującej formularz dajesz INSERT odczytujesz ostatni ID i zapisujesz go np w sesji, ciachu, pliku, innej tabeli itd. Po SUBMIT'cie formularza nie robisz $this->form->save(); tylko UPDATE wpisu utworzonego na początku mojego wpisu. W ten oto super magiczny sposób masz zarezerwowany ID. Jak sobie nie poradzisz, daj znać - napiszę Ci PHP.

Pozdrawiam.

Ten post edytował Juzek 6.10.2010, 17:58:07
Go to the top of the page
+Quote Post

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: 22.12.2025 - 05:15