Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF][Symfony2] Edycja produktu
M4ver7071
post 4.03.2015, 15:37:34
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
Forti
post 4.03.2015, 16:21:05
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.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
M4ver7071
post 10.03.2015, 00:44:22
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 10.03.2015, 09:57:11
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ść wink.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
M4ver7071
post 12.03.2015, 11:10:36
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 12.03.2015, 11:24:17
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ą 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 wink.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
M4ver7071
post 12.03.2015, 11:56:22
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 12.03.2015, 12:05:16
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ć smile.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
M4ver7071
post 12.03.2015, 12:33:24
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 12.03.2015, 13:45:20
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 wink.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
ikssde
post 12.03.2015, 14:22:04
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 12.03.2015, 14:25:17
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.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
M4ver7071
post 14.03.2015, 09:05:25
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ł 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 14.03.2015, 10:33:16
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 wink.gif


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
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: 14.08.2025 - 11:11