Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nette - Cannot read an undeclared property error

Aktivity
Avatar
Jan Demel
Tvůrce
Avatar
Jan Demel:27.4.2014 12:28

Hoj lidi. Mám tu další problém -_- Snažím se z databáze vytáhnou určitý řádek tabulky na základě náhodného čísla... No a když to potom spustím, tak mi Nette vyhodí tuhle chybu.

Presenter:

<?php

namespace App\Presenters;

use Nette,
        App\Model;


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

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

        public function renderDefault()
        {
                $data = $this->database->table('ideas');
                $amountofdata = count($data);

                $id = rand(1, $amountofdata);

                $this->template->idea = $this->database->table('ideas')
                                                                                                ->where('id', $id);
        }

}

Template:

{block content}
        <header>
                        <section id="header_content">
                                <section id="logo">
                                        <img src="images/logo.png">
                                </section>
                                <section id="add_idea">
                                        <a href="#">Přidej nápad</a>
                                </section>
                        </section>
                </header>
                <section id="main">
                        <section id="main_content">
                                <h2>Nudíš se a nevíš, co s časem ? Pak jsi tu správně !<br>
                                O pár centimetrů níž nalezneš tip, jak zabít čas !</h2>
                                <h3>"{$idea->content}"</h3>
                                <a n:href="Homepage:default" class="next_idea">Další nápad!</a>
                        </section>
                </section>
                <footer>
                        <section id="footer_content">
                                <img src="images/triangle.png" class="triangle">
                        </section>
                </footer>
{/block}
Odpovědět
27.4.2014 12:28
To co se zdá být nemožné, je vždy možné.
Avatar
Odpovídá na Jan Demel
Drahomír Hanák:27.4.2014 12:57

Funkce table vrátí iterátor nad záznamy v tabulce. Pokud chceš jen jeden záznam, zavolej nad tabulkou ještě funkci fetch, která vrátí další řádek v té tabulce.

Editováno 27.4.2014 12:57
 
Nahoru Odpovědět
27.4.2014 12:57
Avatar
Jan Demel
Tvůrce
Avatar
Odpovídá na Drahomír Hanák
Jan Demel:27.4.2014 13:37

Díky moc :) Pomohlo to. Kdyby to někdo ještě řešil, tak to má vypadat takhle.

<?php

namespace App\Presenters;

use Nette,
        App\Model;


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

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

        public function renderDefault()
        {
                $data = $this->database->table('ideas');
                $amountofdata = count($data);

                $id = rand(1, $amountofdata);

                $this->template->idea = $this->database->table('ideas')->where('id', $id)->fetch();
       }
}
Editováno 27.4.2014 13:38
Nahoru Odpovědět
27.4.2014 13:37
To co se zdá být nemožné, je vždy možné.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.