Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2] usuwanie z bazy danych
dragon7
post
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 1.10.2010

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


Witam. Mam taki problem. Tworzę formularz z wykorzystaniem createForm() i potrzebnej klasy, w którym umieszczam dane do edycji lub usunięcia. Niestety w tym formularzu nie jest tworzone żadne pole, odpowiadające id w obiekcie. W takim razie jak przekazać metodą POST id wybranego rekordu z bazy danych do edycji/usunięcia?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Dwa rozwiązania:
1. Utwórz ukryte pole formularza z identyfikatorem obiektu.
2. Przekaż identyfikator w URL-u.
Go to the top of the page
+Quote Post
dragon7
post
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 1.10.2010

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


Ze względów bezpieczeństwa GET odpada.

Co do drugiego, to wtedy framework wymaga stworzenia funkcji setId(), która domyślnie nie jest tworzona przez Symfony(bo i po co?). To nie jest tak jakby trochę odejście od stylu narzuconego przez framework?
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


A co ma metoda GET/POST do adresu URL? Oczywiście, żądanie usunięcia zasobu (dowolnego) powinno lecieć metodą POST.
Go to the top of the page
+Quote Post
rzymek01
post
Post #5





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


Można przekazywać GETem, ale trzeba pamiętać, żeby jakiś token dorzucić (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
AxZx
post
Post #6





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


Cytat(Crozin @ 30.07.2012, 15:44:42 ) *
A co ma metoda GET/POST do adresu URL? Oczywiście, żądanie usunięcia zasobu (dowolnego) powinno lecieć metodą POST.


a nie delete?
http://en.wikipedia.org/wiki/Representational_state_transfer
Go to the top of the page
+Quote Post
Crozin
post
Post #7





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@AxZx: HTML-owskie formularze wspierają tylko metody GET/POST, więc nie.
@rzymek01: A od kiedy to żądanie HTTP typu GET może jakiekolwiek dane przenosić?
@dragon7: Skoro ukryte pole formularza odpada, najlepszym rozwiązaniem będzie żądanie typu POST, na adres http.../resource/delete?id=5 - czy jakąkolwiek tam formę URL-a przyjmiesz.
Go to the top of the page
+Quote Post
rzymek01
post
Post #8





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


@Crozin,
panie kochany, dla przykładu wyciąg z wiresharka:
- Expert Info (Chat/Sequence): GET /index.php?get1=abc&get2=123 HTTP/1.1\r\n

czy owe parametry get1 o wartości abc i get2 o wartości 123 to nie są dane?

Ten post edytował rzymek01 30.07.2012, 17:45:25
Go to the top of the page
+Quote Post
Crozin
post
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


@rzymek01: Nie, to nie są dane z metody GET. To jest fragment URL-a, który jako taki może być użyty w dowolnej metodzie żądania HTTP.
Kod
POST /resource?var1=a&var2=b HTTP/1.1
...

postVar1=a&postVar2=b
Tutaj masz przykład żądania, które przesyła jakieś dane.

W PHP ktoś wymyślił by zmienne z URL-a, a konkretnie z części query [string], umieścić w zmiennej $_GET - nie wiem czym się ten człowiek kierował, ale bardziej nieodpowiedniej i mylącej nazwy chyba wymyślić nie mógł.

EDIT: Stawiam na to, że ów osoba wymyślająca nazwę dla zmiennej $_GET kierował się atrybutem action z HTML-owskich formularzy. Co jest oczywiście idiotycznym "kierowaniem się".

Ten post edytował Crozin 30.07.2012, 17:56:18
Go to the top of the page
+Quote Post
rzymek01
post
Post #10





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


Nie zagłębiając się w teorię etc.
Idzie sobie żądanie GET na podany wyżej przeze mnie URL,
masz rację, że GET samo w sobie danych nie niesie, ale informację niesie adres URL, przez co de facto możemy zrobić skrót myślowy i powiedzieć, że niesiemy informację GETem (pośrednio, ale informacja jest dostarczana).
Go to the top of the page
+Quote Post
Crozin
post
Post #11





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Dane z URL-a czy nagłówków żądania (np. ciasteczka czy obsługiwane kodowania znaków) są dostępne przy wykorzystaniu dowolnej metody żądania HTTP, więc nie za bardzo można zrobić skrót myślowy "lecą GET-em". Więcej, metoda GET jasno określa, że żądanie nie przesyła żadnych danych w przeciwieństwie do POST czy PUT. Dane przesłane "przy użyciu metody" są dostępne w żądaniu dopiero po nagłówkach.
Go to the top of the page
+Quote Post
rzymek01
post
Post #12





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


Cytat
Dane z URL-a czy nagłówków żądania (np. ciasteczka czy obsługiwane kodowania znaków) są dostępne przy wykorzystaniu dowolnej metody żądania HTTP

w 100% zgoda,

Sądze, że wszyscy wiedzą o co chodzi, ale z moich doświadczeń wynika, że przyjęło się nazywanie "parametrów" URI (?var=..&..) jako parametry GET.
Co do teorii masz w 100% rację, ale jak już powiedziałem, tak się po prostu mówi,
może znasz inny spoób na określenie tego? (IMG:style_emoticons/default/happy.gif)
Go to the top of the page
+Quote Post
Crozin
post
Post #13





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Chyba tylko w PHP się takie coś przyjęło - właśnie ze względu na błędną nazwę zmiennej $_GET. Inne nazwy? Normalnie jest to nazywane request/URL/query parameter, czyli parametr żądania/URL-a (query już się chyba sensownie nie da przetłumaczyć).
Go to the top of the page
+Quote Post
greycoffey
post
Post #14





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Cytat(Crozin @ 30.07.2012, 19:40:19 ) *
(query już się chyba sensownie nie da przetłumaczyć).


Może query => zapytanie? Przeglądarka odpytuje serwer, aby uzyskać określony zasób.
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.08.2025 - 12:27