jak na httpRequest v komponentě
- konva
- Člen | 88
Ahoj, poraďte prosím proč mi toto nefunguje v komponentě
public $httpRequest;
function __construct(Nette\Http\Request $httpRequest){
$this->httpRequest = $httpRequest;
}
Potřebuji zpracovat POST data v komponentě a nevím jak je dostat.
Myslel jsem, že si v konstruktoru předám httpRequest, ale to nefunguje.
Moc díky za radu
Lukáš
- Oli
- Člen | 1215
No píšeš, že chceš zpracovat POST data a tohle je funkce přímo na to. Nikdy jsem s tím nepracoval, takže nevím jak to přesně funguje. Teoreticky by ale nebyl problém si předat Nette\Application\UI\Form a tam už ta metoda getHttpData bude.
Jinak nevím proč, ale taky mě httpRequest nešlo injectnout v configu, takže když ho potřebuju v komponentě tak si ho předám přes setter. V presenteru je totiž přístupnej přes $this->getHttpRequest();
- konva
- Člen | 88
No Nette\Application\UI\Form si předat nemůžu když jej neodesílám ne?
Např. pokud potřebuju zpracovat data z paypalu, který posílá při
potvrzení platby.
Předání $this->getHttpRequest(); z presenteru mě taky napadlo, ale
pořád si říkám, že je třeba elegantnější řešení :)
Poradí někdo?
Lukáš
- konva
- Člen | 88
toto
$this->getPresenter()->getHttpRequest();
mi v komponente nefunguje. Píše to
Call to undefined method parent::getHttpRequest()
A pro Quinix. Nefunguje znamená toto
Argument 1 passed to Components\Uploadify::__construct() must be an instance of Nette\Http\Request, none given, called in D:\www\app\FrontModule\presenters\HomepagePresenter.php on line 48 and defined
Editoval konva (27. 1. 2014 0:14)
- Pavel Macháň
- Člen | 282
konva napsal(a):
Tak objevil jsem, že mi funguje v komponentě toto
$httpRequest = Environment::getHttpRequest();
Ale nevím jestli postupuji správně.
Může se prosím někdo zkušenější k tomu vyjádřit.
Ještě doplňuji, že používám nette 2.2.dev
Díky
Statické volání pro sehnání služby určitě nepoužívej.
Každopádně
function __construct(Nette\Http\Request $httpRequest){ ... }
by fungovat mělo. Jak tu komponentu vytváříš?
Editoval EIFEL (27. 1. 2014 0:26)
- bazo
- Člen | 620
konva napsal(a):
toto
$this->getPresenter()->getHttpRequest();
mi v komponente nefunguje. Píše to
Call to undefined method parent::getHttpRequest()
A pro Quinix. Nefunguje znamená toto
Argument 1 passed to Components\Uploadify::__construct() must be an instance of Nette\Http\Request, none given, called in D:\www\app\FrontModule\presenters\HomepagePresenter.php on line 48 and defined
no ak vytvaras komponentu takto
<?php
protected function createComponentName()
{
$c = new Component();
...
}
?>
tak ten HttpResquest sa tam automaticky neobjavi, musis ho tam predat, alebo pouzivat generovane tovarnicky
<?php
protected function createComponentName()
{
$c = new Component($this->getHttpRequest());
...
}
?>
- konva
- Člen | 88
Uz EIFEl me navedl kde delam chybu. Vytvarel jsem komponentu takhle
$component = new \Components\ComponentName();
Opravil jsem to, ze jsem zalozil v konfiguraci sluzbu a v presenteru ji injectuju
$uploadcomponentify = $this->componentFactory->create();
a uz to samozrejme funguje.
Diky moc za trpelive rady.
Lukas