Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][Symfony2] Edycja produktu
M4ver7071
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Witam, posiadam CRUD i gdy edytuje produkt to ścieżkę do zdjęcia produktu znajduje się w input Text. Chciałem dopisać dodatkowe pole input file gdyby wstąpiła potrzeba zmiany zdjęcia. Ale zapis cały do bazy odbywa się poprzez
  1. $em->persist($product);
  2. $em->flush ()
więc zapis jest automatyczny. Chcę dodać input file który w razie czego wyślę plik ale jeżeli w input jest pusty to żeby skrypt nie czyści danego pola w bazie. Jak rozbudować zapis produktów na poszczególne elementy ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Wszystko definiujesz sobie przed tym presists -,- i formie.

Poczytaj o doctrine STOF uploadfile.
Go to the top of the page
+Quote Post
M4ver7071
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


No tak czytałem o tym, ale powiem szczerze nadal mam problem. Bo w opisie jest napisane dokładnie to co createFormBuilder mi generuje.. Nie wiem jak tego użyć
Go to the top of the page
+Quote Post
Forti
post
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Przede wszystkim nie korzystaj z dokumentacji w symfony odnośnie uploadu. tylko poszukaj rozwiązań na stackoverflow.

  1. use Gedmo\Mapping\Annotation as Gedmo;
  2.  
  3. /**
  4.  * File
  5.  *
  6.  * @ORM\Table(name="you_name")
  7.  * @ORM\Entity
  8.  * @Gedmo\Uploadable(pathMethod="uploadPath", filenameGenerator="ALPHANUMERIC", allowOverwrite=false, appendNumber=true)
  9.  */
  10. class YouClass
  11. {
  12. public function uploadPath()
  13. {
  14. //..
  15. }
  16.  
  17. public function getRelativePath()
  18. {
  19. //..
  20. }
  21. }


Controller robisz:

  1. $uploadableManager->markEntityToUpload($entity, $files['image']['path']);


Musisz sam do tego dojść (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
M4ver7071
post
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


W metodzie uploadPath przenoszę plik do odpowiedniego katalogu, a w metodzie getRelativePath zapisuje dane do bazy tak ?
Go to the top of the page
+Quote Post
Forti
post
Post #6





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Nie. Przeczytaj te nazwy metod i zgadnij co oznaczają (IMG:style_emoticons/default/wink.gif) poszukaj w internecie.

Tutaj masz mój problem z przed jakiegoś czasu, na dzisiaj rozwiązany.

http://stackoverflow.com/questions/2877422...ld-not-be-found

Problemem były annotacje @assert - na file mimetype i size mają bugga i wymagają uploadu na nowo - tym się nie przejmuj (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
M4ver7071
post
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Ja próbowałem zrobić coś w ten deseń ale nie zapisuje mi do bazy pliku ani go nie wysyła
http://wklej.org/id/1660544/
Go to the top of the page
+Quote Post
Forti
post
Post #8





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(M4ver7071 @ 12.03.2015, 11:56:22 ) *
Ja próbowałem zrobić coś w ten deseń ale nie zapisuje mi do bazy pliku ani go nie wysyła
http://wklej.org/id/1660544/


a robisz w kontrollerze COŚ aby ten plik zapisać? Samo doctrine go nie zapisuje...

  1. $files = $request->files->all();
  2.  
  3. if ($form->isValid()) {
  4. $uploadableManager = $this->get('stof_doctrine_extensions.uploadable.manager');
  5. if (!empty($files['image']['path']) && $files['image']['path'] instanceof \Symfony\Component\HttpFoundation\File\UploadedFile) {
  6.  
  7. $uploadableManager->markEntityToUpload($entity, $files['image']['path']);
  8. }
  9. //..
  10. }


To ci powinno wystarczyć (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
M4ver7071
post
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Tak tylko Ty cały czas opierasz upload o dodatkowy bundle a ja bym chciał wykorzystać samo doctrine.
Go to the top of the page
+Quote Post
Forti
post
Post #10





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


https://packagist.org/packages/gedmo/doctrine-extensions


Prędzej czy później zaczniej z tego korzystać. Gwarantuje Ci. Lepiej prędzej (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
ikssde
post
Post #11





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

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


Tutaj masz dobrze opisane jak to zrobić bez korzystania z dodatkowych bundli.

Według kodu z powyższego odnośnika, jeśli nie prześlesz pliku to pole z jego ścieżką nie będzie wyzerowane.
Go to the top of the page
+Quote Post
Forti
post
Post #12





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(ikssde @ 12.03.2015, 14:22:04 ) *
Tutaj masz dobrze opisane jak to zrobić bez korzystania z dodatkowych bundli.

Według kodu z powyższego odnośnika, jeśli nie prześlesz pliku to pole z jego ścieżką nie będzie wyzerowane.


To działa BARDZO źle. Dokumentacja symfony o upload plików jest strasznie słabo napisana i często występują z tym problemy. Oczywiście sam z tego korzystałem na początku, jednak jak już ogarnąłem gedmo to nic tego nie zastąpi, do prostych czynności ofc.
Go to the top of the page
+Quote Post
M4ver7071
post
Post #13





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 26.06.2014

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


Problem polega na tym, że zwykły upload mi działał (IMG:style_emoticons/default/smile.gif) tylko problem polegał na tym że jak chciałem edytować ten produkt. Muszę przyjeć się rozwiązania które proponujecie.

Cytat(ikssde @ 12.03.2015, 14:22:04 ) *
Tutaj masz dobrze opisane jak to zrobić bez korzystania z dodatkowych bundli.

Według kodu z powyższego odnośnika, jeśli nie prześlesz pliku to pole z jego ścieżką nie będzie wyzerowane.




Widziałem to rozwiązanie ale to nie chodzi o sam upload.. Problem polega przy edycji.. Jak symfony automatycznie generuje formularz, bo ja wolałbym żeby nazwę pakował do inputa zwykłego a poniżej input#file i wtedy z input#file wgrywa się nowy plik albo zostaje stary.
Go to the top of the page
+Quote Post
Forti
post
Post #14





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


No to stof i odpowiednie extension do tego napisane i się da. Ewentualnie na łatwizne i javascriptem (IMG:style_emoticons/default/wink.gif)
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: 11.10.2025 - 04:11