Avatar
Jan Demel
Redaktor
Avatar
Jan Demel:

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
Drahomír Hanák
Tým ITnetwork
Avatar
Odpovídá na Jan Demel
Drahomír Hanák:

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
Redaktor
Avatar
Odpovídá na Drahomír Hanák
Jan Demel:

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.