injectBase se nezavolá v basePresenteru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
koblamic
Člen | 6
+
0
-

Mám problém s injectem repository v BasePresenteru:

protected function injectBase(\Models\UserRepository $userRepository) {
        $this->$userRepository = $userRepository;
}

Později si v base presenteru hraju se submitnutym formem a potřebuju svoje UserRepository, ale je null, protože se mi ten inject ani nezavolá. V dalších presenterech používám metodu inject (i onoho UserRepository), a vše funguje.

Vycházím z příkladu: https://github.com/…e/quickstart

Na co jsem zapomněl? Jaká závislost mi uniká?

Dík za radu
Nette – 2.0.8
PHP 5.3

castamir
Člen | 629
+
0
-

Nepřepisuješ si tu metodu v dalších presenterech?

koblamic
Člen | 6
+
0
-

castamir napsal(a):

Nepřepisuješ si tu metodu v dalších presenterech?

Používám metodu inject v každém presenteru. Jedná se o ono přepisování?

private $couponRepository;

    public function inject(\Model\CouponRepository $couponRepository) {
		$this->couponRepository = $couponRepository;
	}
davidm
Člen | 81
+
0
-

vsechny inject metody musi byt public, protoze se volaji z presenter factory

koblamic
Člen | 6
+
0
-

davidm napsal(a):

vsechny inject metody musi byt public, protoze se volaji z presenter factory

Dík. to je ono.

Teď dostávám tuto chybu v injectBase, při přiřazení:

$this->$userRepository = $userRepository;

„Object of class Model\UserRepository could not be converted to string“
Teď mi teda nedochází proč by měl chtít string. Zase v ostatních presenterech to frčí.

davidm
Člen | 81
+
0
-

$this->userRepository = $userRepository;

btw, nejdriv by bylo dobry se naucit zaklady phpka

castamir
Člen | 629
+
0
-

Zkus

$this->userRepository
koblamic
Člen | 6
+
0
-

davidm napsal(a):

$this->userRepository = $userRepository;

btw, nejdriv by bylo dobry se naucit zaklady phpka

sry jsem debil – překlep

Editoval koblamic (3. 2. 2013 17:31)

japlavaren
Člen | 404
+
0
-

osobje davam vsetky inject metody ako final, clovek si to potom neprepsie a nepozera pol dna do kodu, preco mu to nefunguje

enumag
Člen | 2118
+
0
-

@japlavaren: Dobrý nápad! Díky. :-)