Render metoda – Undefined variable

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

Čau snažím se vypsat data z admineru ale laděnka mi vypisuje:

Undefined variable: apicomments
Source file

File: ...\latte\templates-Api-comments.latte--bb9ab6a762.php:16

 6:    class Templatebb9ab6a762 extends Latte\Runtime\Template
 7:    {
 8:
 9:        function main()
10:        {
11:            extract($this->params);
12:    ?>
13:    <h1>API</h1>
14:    <?php
15:            $iterations = 0;
16:            foreach ($apicomments as $apicomment) {
17:                ?>        <p>#<?php echo LR\Filters::escapeHtmlText($comment->id) /* line 4 */ ?> <b><?php echo LR\Filters::escapeHtmlText($comment->name) /* line 4 */ ?></b> napsal:</p>
18:            <?php echo LR\Filters::escapeHtmlText($comment->content) /* line 5 */ ?>
19:
20:    <?php

Presenter

public function renderApicomments()
	{

		$this->template->apicomments = $this->database->table('comments')->order('created_at');

	}
a latte ve kterém chci data/komentáře vypsat
{foreach $apicomments as $apicomment}
		<p>#{$comment->id} <b>{$comment->name}</b> napsal:</p>
		{$comment->content}
{/foreach}\--
V čem je chyba ? Děkuji :-)
Jan Mikeš
Člen | 771
+
0
-

as $apicomment a snažíš se přistupovat k proměnné $comment
Tracy ti nenapoví did you mean $comment??

mi85
Člen | 41
+
0
-

did you mean $comment mi tracy nevypisuje.Dělal jsem blog podle quickstartu a tam je v také render metoda

	public function renderShow($postId)
	{
		//\Tracy\Debugger::dump($this->getUser()->getIdentity()->getId()['name']);
		$post = $this->database->table('posts')->get($postId);
		if (!$post) {
			$this->error('Stránka nebyla nalezena');
		}

		$this->template->post = $post;
		$this->template->comments = $post->related('comment')->order('created_at');

	}

ale když se ji snažím vypsat v nové šabloně tak mi tracy vrací Undefined variable: comments ikdyž se mi již v jiném .latte vypisuje bez problému

{foreach $comments as $comment}
	<div class="panel panel-default">
		<p>#{$comment->id} <b>{$comment->name}</b> napsal:</p>
		<div class="jumbotron">{$comment->content}</div>
	</div>
{/foreach}

Editoval mi85 (11. 10. 2016 18:36)

David Matějka
Moderator | 6445
+
+2
-

dle nazvu te sablony se ma ta render metoda jmeno renderComments. a pak budes muset opravit to, co pise @Lexi

mi85
Člen | 41
+
0
-

Super, funguje děkuji!