Paginator error Cannot write to an undeclared property

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

Čau, udělal jsem si paginator podle tohoto návodu

public function renderDefault($page = 1, $items = 0)
	{

		$paginator = new Nette\Utils\Paginator;
		$paginator->setItemsPerPage(1); // the number of records on page
		$paginator->setPage($page); //current page, default 1

		$posts = $this->database->table('posts')
			->order('created_at DESC')
			->limit($paginator->getLength(), $paginator->getOffset());

		//if itens == 0 count how many posts in posts table
		if( $items == 0 ){

			$this->totalPosts = $this->database->table('posts')->count();
		}  else {

			$this->totalPosts = $items;
		}

		$paginator->setItemCount( $this->totalPosts );

		$this->template->totalPosts = $paginator->getPageCount();
		$this->template->posts = $posts;
		$this->template->page = $paginator->page;

	}

a vypisuji v latte

{for $i = 1; $i <= $totalPosts; $i++}

    {if $i == $page}

        <strong>{$i}</strong>

    {else}

        <a href="{link Homepage:default $i, $totalPosts}">{$i}</a>

    {/if}

{/for}

Tracy mi ale vyhazuje Cannot write to an undeclared property App\Presenters\HomepagePresenter::$totalPosts.
Díky za rady

JZechy
Člen | 161
+
0
-

Protože v tom renderu zapisuješ do $this->totalPosts, který ovšem v HomepagePresenter není definovaný, musíš si tam ten atribut vytvořit.

mi85
Člen | 41
+
0
-

Díky, pokud nastavím 1 článek na stránku tak to funguje perfektně ale jakmile nastavím 2, tak když kliknu na určitou stránku,tak mě to na ni přesměruje ale zmizí mi z výběru stránek.Následně musím jít na default stránku kde se mi zase zobrazí seznam stránek.Čím by to mohlo být ? Díky