Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][Symfony][Symfony2]tworzenie pola request file w testach?
Forum PHP.pl > Forum > PHP > Frameworki
symer
Witam. Jak za symulować w testach wysyłanie request? chodzi mi o dane pola file jak zasymilować . Oraz także GET.
  1. $client = static::createClient();
  2. $client->request('GET', $url);

Na forach pisze, że tak można zasymlować GET ale FILE niestety nie wiem. Może mi ktoś pomóc
symer
Niestety słabo. Nic nie chodzi.
próbuje tak :
  1. $this->client = static::createClient();
  2. $photo = array(
  3. 'data' => $this->_createUploadedFile()
  4. );
  5. $this->client->request(
  6. 'POST',
  7. $this->client->getContainer()->get('router')->generate(
  8. 'edit_add', array('id_add' => '1')
  9. ),
  10. array('name' => 'Fabien'),
  11. array('photo' => $photo )
  12. );


tutaj funkcja _createUploadedFile:
  1. public function _createUploadedFile() {
  2. return new UploadedFile(
  3. 'C:\xampp\htdocs\heroku\my_project_test\web\images\1.jpg', 'photo.jpg', 'image/jpeg', null
  4. );
  5. }


No i nie przesyła mi tego pliku :-(
Pyton_000
Chodzi chodzi tylo Ty źle załączyłeś plik. Mam wrażenie że nie wiesz co robisz. Zrobiłeś Copy&paste bez zrozumienie tego co się dzieje.

https://symfony.com/doc/current/testing.htm...-method-sidebar zobacz jak wyglądają parametry metory request
symer
No dobra z tym akurat nie ma problemu. Już sobie poradziłem . Tylko jak wysłać tego clienta questionmark.gif?
ponieważ gdy robię client->request to nie wysyłam tego.
Ponieważ próbuje to odebrać i niczego nie dostaje. Chyba, że coś źle robię.
No ale gdy próbuje użyć var_dump($_POST) aby odebrać dane to niczego nie mam tak jakby nigdzie nie wysłał tych informacji. Mam nadzieje, że dobrze to wyjaśniłem.
PO prostu :
  1. $this->client = static::createClient();
  2. $paramsArray = array();
  3. $this->client->request(
  4. 'POST',
  5. $this->client->getContainer()->get('router')->generate(
  6. 'edit_add', array('id_add' => '1')
  7. ),
  8. $paramsArray,
  9. 'data' => $this->_createUploadedFile()
  10. ),
  11. 'Content-Type' => 'multipart/formdata'
  12. )
  13. );

Wysyłam dane i próbuje teraz odebrać te pole FILE i nie wiem właśnie jak.:
Gdy dla testu robię takie coś:
var_dump($_POST) to tablica jest pusta.
Może mi pomożesz jak to wyciągnąćquestionmark.gif? Tylko o to mi chodzi . Z resztą sobie już poradziłem
rad11
Pliki to raczej $_FILES
symer
No tak zamuliłem się w akcji ale tak , czy siak nic nie działa. Po prostu tablica $_FILES jest pusta
rad11
Tak jak Python napisal masz zle podane parametry tablica z photo powinna byc o jedno miejsce wyzej
symer
Zrobiłem tak i pełno błedów wyskakuje. Podniosłem o jedno miejsce wyżej:
  1. $this->client = static::createClient();
  2. // Any additional params
  3. $paramsArray = array();
  4. $this->client->request(
  5. 'POST',
  6. $this->client->getContainer()->get('router')->generate(
  7. 'edit_add', array('id_add' => '1')
  8. ),
  9. 'data' => $this->_createUploadedFile()
  10. ),
  11. 'Content-Type' => 'multipart/formdata'
  12. )
  13. );
rad11
Daj jako trzeci parametr pusta tablice.. a czwarty ma byc ten z photo... czytasz to co jest w dokumentacji ? Czy raczej to jest komiks dla Ciebie i przegladasz sobie obrazki ?☺
symer
No czytam dokumentacje ale próbowałem z niej i się wkurzyłem i tak zacząłem ten wątek. Widocznie źle to zrozumiałem. NO wcześniej tak przecież miałem zrobione i podczas wysłania mam pustą tablicę. Praktycznie wróciłem do punktu wyjścia :-(
rad11
Wchodzi Ci w ogóle do tej akcji ? Przypisz ten request w testach caly do zmiennej i zrob na nim ->html() luub ->text i go pokaz
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-2024 Invision Power Services, Inc.