template->user vs user->getId bug?

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

Tak jsem dneska zabil hromadu času nad takovou maličkostí. Dělám svůj první web v nette a po té co jsem se prokousal k uživatelům a chtěl vypsat data podle konkrétního uživatele…

public function actionTest()
        {
    $this->template->user = $this->userService->find($this->getIdentity()->getId());
        }

a v šabloně…

    {$user->ref('userwhatever')->id}
...

… dostal jsem

Call to undefined method Nette\Database\Table\ActiveRow::getId()

Tak jsem si zase zanadával na Nette\Database a jaký jsem „chytrý“, když můžu zkazit takovou základní jednoduchou věc.

Samozřejmě mi nedošlo že někde hluboko v šabloně mám {$user->getId()} z nějakého návodu. Není to bug? Je takových skrytých „zakázaných“ proměnných pro šablony více?

Editoval newbie (30. 4. 2013 22:13)

jiri.pudil
Nette Blogger | 1032
+
0
-

Ano, je jich více, ale bug to rozhodně není, neboť jsou zdokumentované.

Šaman
Člen | 2666
+
0
-

Bug to není, ale WTF to je. Zvlášť, když to blokuje tak běžné slovo, jako User. Taky už jsem na to několikrát narazil. Raději bych si toho uživatele šabloně předal v presenteru sám.

enumag
Člen | 2118
+
0
-

@Šaman: Doufejme, že brzy bude ta templateFactory. Osobně si ve své nejspíš zruším všechny automatické proměnné co nezačínají podtržítkem.