Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Formularz i id
Forum PHP.pl > Forum > PHP > Frameworki
blackroger
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?
mdco
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.
Juzek
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.