Tutoriál quickstart – rozvinuti n:href
- Solmyr
- Člen | 4
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
- Solmyr
- Člen | 4
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->database = $database;
}
public function renderShow($postId)
{
$this->template->post = $this->database->table('posts')->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.
- Solmyr
- Člen | 4
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")
- David Grudl
- Nette Core | 8233
Jako stát se to může, koneckonců značka <?php
je ostuda
PHP, ale v dokumentaci to nemá co dělat.