Tutoriál quickstart – rozvinuti n:href

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

Dobry den, jsem v nette zacatecnik, ktery testuje jak se s nim vyviji. Mam nejnovejsi verzi 4.1 a narazil jsem na problem.
jedu podle quikstartu, a makro href=„{link Post:show $post->id}“ (stejne tak verze n:href) se mi rozvyne tak ze do odkazu vypise celou classu presenteru. Cetl jsem prispevky o tom ze tehle tutorial neni zrovna aktualizovany, tak verim ze to je jen nejaka drobnost v syntaxi nebo tak neco, ale nejsem schopnej prijit na to jak to ma byt. Ma nekdo nejaky napad? Dekuji

vvoody
Člen | 910
+
0
-

Ja mam nápad. Pre začiatok napíš tvoj latté kód + vygenerovaný html kód + html kód ktorý očakávaš že ho nette vygeneruje.

Solmyr
Člen | 4
+
0
-

presenters/HomepagePresenter.php:

<?php
namespace App;

use Nette,
  Model;


/**
 * Homepage presenter.
 */
class HomepagePresenter extends BasePresenter
{
   private $database;

    public function __construct(Nette\Database\Context $database)
    {
        $this->database = $database;
    }

  public function renderDefault()
  {
    $this->template->posts = $this->database->table('posts')
        ->order('created_at DESC')
        ->limit(5);
  }

}

templates/Homepage/default.latte:

{block content}
<h1 n:block="title">Můj úžasný blog</h1>

{foreach $posts as $post}
<div class="post">
    <div class="date">{$post->created_at|date:'F j, Y'}</div>

    <h2><a href="{link Post:show $post->id}">{$post->title}</a></h2>

    <div>{$post->content}</div>
</div>
{/foreach}

vygenerovany kod (jeden div post):

<div class="post">
    <div class="date">November 30, -0001</div>

    <h2><a href="class PostPresenter extends BasePresenter
{
    /** @var Nette\Database\Context */
    private $database;

    public function __construct(Nette\Database\Context $database)
    {
        $this-&gt;database = $database;
    }

    public function renderShow($postId)
    {
        $this-&gt;template-&gt;post = $this-&gt;database-&gt;table('posts')-&gt;get($postId);
    }
}
#">test1</a></h2>

    <div>fsdfsdfdsfdsfsdfsf</div>
</div>

link vypada nasledovne:

http://mujweb/sandbox/www/class%20PostPresenter%20extends%20BasePresenter%7B%20%20%20%20/**%20@var%20Nette/Database/Context%20*/%20%20%20%20private%20$database;%20%20%20%20public%20function%20__construct(Nette/Database/Context%20$database)%20%20%20%20%7B%20%20%20%20%20%20%20%20$this-%3Edatabase%20=%20$database;%20%20%20%20%7D%20%20%20%20public%20function%20renderShow($postId)%20%20%20%20%7B%20%20%20%20%20%20%20%20$this-%3Etemplate-%3Epost%20=%20$this-%3Edatabase-%3Etable('posts')-%3Eget($postId);%20%20%20%20%7D%7D#`

Vse to je ciste copy+paste z tutorialu. Co ocekavam rict nemuzu protoze nevim jak presne se to makro ma rozvijet, nicmene jsem si temer jist ze tohle delat nema.

Aurielle
Člen | 1281
+
0
-

o_O
Co říká requirements checker?

Solmyr
Člen | 4
+
0
-

ten mi prijde ok

Web server	Apache/2.2.22 (Debian)
PHP version	5.4.4-14+deb7u5
Memory limit	128M
.htaccess file protection	Enabled
.htaccess mod_rewrite	Enabled
Function ini_set()	Enabled
Function error_reporting()	Enabled
Function flock()	Enabled
Register_globals	Disabled
Variables_order	Enabled
Session auto-start	Enabled
Reflection extension	Enabled
PCRE extension	Enabled and works properly
ICONV extension	Enabled and works properly
PHP tokenizer	Enabled
PDO extension	Available drivers: mysql sqlite
Multibyte String extension	Enabled
Multibyte String function overloading	Disabled
Memcache extension	Enabled
GD extension	Enabled
Bundled GD extension	Disabled
Bundled GD extension is absent. You will not be able to use some functions such as Nette\Image::filter() or Nette\Image::rotate().
Fileinfo extension or mime_content_type()	Enabled
HTTP_HOST or SERVER_NAME	Present
REQUEST_URI or ORIG_PATH_INFO	Present
SCRIPT_NAME or DOCUMENT_ROOT & SCRIPT_FILENAME	Present
REMOTE_ADDR or php_uname("n")
Neishon
Člen | 3
+
0
-

Podobný problém jsem již viděl. Chyba byla v tom, že v PostPresenteru chybělo a začátku <?php

Solmyr
Člen | 4
+
0
-

coz je i tehle pripad. Nenapadlo me koukat na tehle presenter kdyz to je vlastne o krok dopredu. Moc dekuji za pomoc. Vyreseno
EDIT: chapu ze to je moje pitomost, ale nebylo by od veci to do kodu v tutorialu doplnit at to zbytecne nemate

Editoval Solmyr (28. 12. 2013 12:34)

Aurielle
Člen | 1281
+
0
-

No, jestli na tohle zapomínáš, tak by ses měl zamyslet, jestli se pokoušet o Nette a nejdřív si neprojít samotné základy jazyka…

David Grudl
Nette Core | 8233
+
0
-

Jako stát se to může, koneckonců značka <?php je ostuda PHP, ale v dokumentaci to nemá co dělat.

iNviNho
Člen | 352
+
0
-

David ako inakšie by si rozlišil použitie jazykov v aplikácia ak nie <script></script> <?php ?> alebo <style> </style?

vvoody
Člen | 910
+
0
-

Ty ešte sále miešaš jazyky v jednom súbore? :)

iNviNho
Člen | 352
+
0
-

To nie, ale reagujem len prečo by to mala byť ostuda php …