renderDefault() do layout.latte

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

Zdravím,
potřeboval bych vypsat položky z databáze pro všechny šablony, resp. do layout.latte. Můžete mi někdo poradit jak na to?

Děkuji

David Matějka
Moderator | 6445
+
0
-
  1. vytvor si nejaky BasePresenter, od ktereho budou dedit ostatni presentery
  2. v BasePresenteru vytvor metodu beforeRender, kde naplnis sablonu potrebnymi daty
  3. v @layout.latte tyto data vypises
Checkpoint
Člen | 34
+
0
-

matej21 napsal(a):

  1. vytvor si nejaky BasePresenter, od ktereho budou dedit ostatni presentery
  2. v BasePresenteru vytvor metodu beforeRender, kde naplnis sablonu potrebnymi daty
  3. v @layout.latte tyto data vypises

Následoval jsem Vaše body, bohužel mně vyskočila laděnka s Fatal Error „Call to a member function vsechnyKategorie() on a non-object“.

Zde je BasePresenter.php –

<?php

/**
 * Base presenter for all application presenters.
 */
abstract class BasePresenter extends Nette\Application\UI\Presenter
{

  /** @var InzerceRepository */
  private $inzerceRepository;
  /** @var KategorieRepository */
  private $kategorieRepository;

  public function inject(InzerceRepository $inzerceRepository, KategorieRepository $kategorieRepository) {
    $this->inzerceRepository = $inzerceRepository;
    $this->kategorieRepository = $kategorieRepository;
  }

  public function beforeRender() {
    parent::beforeRender();
    $this->template->kategorie = $this->kategorieRepository->vsechnyKategorie();
  }

}
?>

A zde je KategorieRepository.php

<?php
class KategorieRepository extends Repository {

  public function vsechnyKategorie() {
    return $this->connection->table('Category')->order('title ASC');
  }

  public function detailKategorie($idCategory) {
    return $this->connection->table('ads')->where('Category_CategoryId LIKE ?', $idCategory);
  }

}
?>
Checkpoint
Člen | 34
+
0
-

Vyřešeno. :)

Chyba byla v tom, že jsem měl nastavené proměnné na private místo na public.

Lock.

Editoval Checkpoint (6. 11. 2013 7:53)