Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Relationships - problem ze smarty
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
NorthPole
Witam

Mam problem z wyświetlaniem w szablonach smarty elementów pobieranych przez findParentRow().
Zdefiniowałem sobie w modelu relacje dla kilku tabel i teraz gdy w kontrolerze dam:
  1. <?php
  2. $news = new News();
  3. $allNews  = $news->fetchAll();
  4.  
  5. foreach ($allNews as $news) {
  6. print_r($news->findParentRow('Users')->username);
  7. }
  8. ?>

Dostaje wartości z tabeli "Users" i wszystko jest OK czyli relacja działa.

Natomiast jak w dodam do widoku
  1. <?php
  2. $this->view->news = $allNews;
  3. ?>

a potem w szablonie
  1. <?php
  2. {foreach from=$news item=row}
  3.  {($row->findParentRow('Users')->username)}<br>
  4. {/foreach}
  5. ?>

to wywala mi błąd
  1. Fatal error: Smarty error: [in news/index.tpl line 13]: syntax error: unrecognized tag: ($row->findParentRow('Users')->username) (Smarty_Compiler.class.php, line 446)

Brak mi pomysłu co może być nie tak? Podpowiedzcie czy to powinno działać i mam błąd gdzieś indziej czy raczej czegoś niedoczytałem i taka metoda jest błędna.
Pozdrawiam NorthPole
nospor
Nie: {($row->findParentRow('Users')->username)}
a: {$row->findParentRow('Users')->username}
na grzyba te nawiasy dawales?
NorthPole
sorry za nawiasy ale to jedna z prób - też nieudana biggrin.gif
Bez nawiasów też nie działa
Jakieś inne sugestie?
nospor
No ale co ci krzyczy gdy usuniesz nawiasy?
NorthPole
  1. Fatal error: Smarty error: [in news/index.tpl line 8]: syntax error: unrecognized tag: $row->findParentRow('Users')->username (Smarty_Compiler.class.php, line 446) in


Dodam że własności obiektu row są wyświetlane bezproblemu ($row->title).


::EDIT::

zrobiłem inaczej
  1. <?php
  2. $users  = new Users();
  3. $usersRowset  = $users->find(1);
  4. $user1  = $usersRowset->current();
  5. $this->view->user1 = $user1;
  6. ?>

a potem w szablonie
  1. <?php
  2. {foreach from=$user1->findDependentRowset('News') item=row}
  3.  {$row->title}<br>
  4. {/foreach}
  5. ?>

i to dzała blinksmiley.gif

Więc dlaczego $row->findParentRow('Users')->username wywala mi błąd?questionmark.gif
nospor
Kod
{foreach from=$news item=row}
   {assign var="temp" value=$row->findParentRow('Users')}
   {$temp->username}<br>
{/foreach}
NorthPole
Działa yahoo.gif

nospor bardzo dziękuję za lekcję. Widzę że na zadanie domowe mam dużo do zrobienia w temacie smarty.
Pozdrawiam i jeszcze raz dziękuję - to już drugi dzień walki z tym cholerstwem
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.