Undefined variable: posts
- brontosaurus
- Člen | 49
Jedu podle návodu quickstart a narazil jsem na to , že mi to nechce zkousnout předání proměnné tabulky do šablony.
HomePresenter :
<?php
namespace App\Presenters;
use Nette,
App\Model;
/**
* Homepage presenter.
*/
class HomepagePresenter extends BasePresenter
{
/** @var Nette\Database\Context */
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);
}
}
?>
default.latte :
<div n:foreach=„$posts as $post“ class=„post“>
<div class=„date“>{$post->created_at|date:‚F j,
Y‘}</div>
<h2>{$post->title}</h2>
<div>{$post->content}</div>
</div>
Tabulku mám vytvořenou a připojení k databázi jsem několikrát kontroloval a předpokládám ,že kdyby se to nepřipojilo k MSQ tak mi NETT(mám v.2.3) něco zařve .. Dík za každou radu.
- Andurit
- Člen | 131
Asi by som ten select dal do modelu,mohlo by to vyzerať nejako takto:.
<?php
namespace App\Model;
use Nette;
class PostManager extends Nette\Object
{
private $db;
public function __construct(Nette\Database\Context $database)
{
$this->db = $database;
}
function getAllPosts()
{
return $this->db->table('posts')->limit(5)->order("created_at DESC");
}
a potom v prezentri by to v tvojom prípade mohlo vyzerať nejako takto:
public function renderDefault()
{
$this->template->posts= $this->database->getAllPosts();
}
Editoval Andurit (9. 4. 2015 15:34)
- David Matějka
- Moderator | 6445
@Andurit to neresi problem, ktery tazatel ma.. a taky zbytecne zatezujes cloveka, ktery se uci nette par dni, modelovou vrstvou. Na to bude mit cas pozdeji :)
@brontosaurus divny, chybu tam nevidim. zkus zjistit, jestli to
prochazi metodou renderDefault (treba si do ni dej exit;
a uvidis,
jestli aplikace skonci nebo ne)
- brontosaurus
- Člen | 49
Omlouvám se, ale HomepagePresenter jsem neměl správně nakopírovaný na hosting kde to zkouším. TeĎ už to tam je tak jsem to dal sem na fórum ale vyhodí mi to jinou chybu :
Nette\MemberAccessException
Cannot read an undeclared column ‚title‘
- David Matějka
- Moderator | 6445
zkus promazat temp/cache
mimochodem, vyvijet na hostingu neni dobre, zprovozni si u sebe server – treba xampp, ve kterem je vsechno, co potrebujes
- brontosaurus
- Člen | 49
SUPER. Už to jede, díky. Localhost mám určitě v plánu, bohužel na mých Win7 starter se mi zatím nepodařilo rozběhnout MySQL a asi to snad ani nejde..