Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana]KOHANA REQUEST RESPONS
Forum PHP.pl > Forum > PHP > Frameworki
killzone
Takie proste pytanie smile.gif

Dlaczego taki zapis działa ?


  1. $request = Request::factory('item/get_box_profile');
  2. $request->execute();
  3. $this->template->log_in = $request->response;


A taki nie questionmark.gif

  1.  
  2. $request = Request::factory('item/get_box_profile')->execute()->respons;
  3. $this->template->log_in = $request;



Kiego wafla chodzi ? I czego w klasie kohana Request i Respons nie ma ani takiej zmiennej jak respons ani takiej metody questionmark.gif

Jest to dla mnie zastanawiające smile.gif
freemp3
Drugi wariant nie działa zapewne dlatego, że metoda execute nie zwraca obiektu request.

Co do drugiego pytania to poczytaj o metodach magicznych w php. Szczególnie o metodach __get i __set.
killzone
Rozumiem metody magiczne sprawdze je dzięki.
Tyle ze request mamy wyłączenie
public function __toString()
a w response nie ma żadnej metody magicznej smile.gif więcj nie wiem jak . Może jakis krok pominąłem podczas zwracania obiektów??
Ale ostatecznie mam wrażenie że w tym momencie

  1. $request->response


$request jest dalej obiektem klasy request smile.gif więc nie czaje
freemp3
Sprawdź dokładnie co robi ta klasa, być może dziedziczy z innej, która posiada taką funkcjonalność. Możliwe, że klasa ustawia sobie dynamicznie parametry, w tedy metoda __get jest pomijana.

Cytat
$request jest dalej obiektem klasy request więc nie czaje

Owszem ta zmienna cały czas jest obiektem request, ale metoda execute nie zwraca obiektu request więc nie możesz bezpośrednio na tym co zwraca wykonać następnej operacji, tylko musisz to zrobić na zmiennej. Gdyby metoda execute zwracała obiekt czyli return $this, wtedy mógłbyś bez problemy wykonać w ten sposób następną operację.
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.