Vypnutí buttonu podle stavu položky v databazi(podminka)

- Koupilsemto
 - Člen | 38
 
Zdravím, už několik hodin se mi nedaří vypnout button pokud je
stav knihy v databázi = ‚Rezervováno‘.
Zobrazuji přehled knih kde je stav zda je dostupná, rezervovaná atd. a chtěl
bych vypnout tlačítko pokud bude stav „Rezervováno“. Knihy zobrazuji
pomoci cyklu a u každé položky zobrazuji button „rezervovatbtn“.
Lattle
    <tr n:foreach="$knihy as $book" class="articles">
        <td>{$book->stav}</td>
        <td>
			<button class="rezervovatbtn" n:if="$user->loggedIn">
                <a n:href="Post:rezerve $book->ID">Rezervovat</a>
			</button>
        </td>
</tr>
Zde je připadně presenter
    public function renderDefault($strana = 1) {
        $this->template->strana = $strana;
        $lastPage = 0;
        $knihy = $this->database->table('v_knihy')
                ->where('`prace` IS NOT NULL')
                ->order('datumpridani DESC')
                ->page($strana, 15, $lastPage);
        $this->template->lastPage = $lastPage;
        $search = $this->getRequest()->getParameter('search');
        if ($search) {
            $knihy->where('search LIKE ?', '%'.$search.'%');
        }
        $this->template->knihy = $knihy;
    }
Za případné odpovědi díky.

- Koupilsemto
 - Člen | 38
 
WoW, tak to je husté že to jde v Nette takto pěkně udělat díky. Já se
pokoušel o škaredé věci :D ale tohle vážně pěkné.
Jinak kdy použit button a kdy ne moc nevím dávám ho v podstatě všude kde
chci aby se provedl post atd. Možná by to bylo lepši přes
<a><a/>? Jak používáš buttony ty?

- Koupilsemto
 - Člen | 38
 
Promin nevšiml jsem si odpovědi. Odkaz mám uvnitř buttonu protože když si ten post dam
<button n:href="Post:rezerve $book->ID">
Tak mi to vůbec nefunguje. Ještě jsem nepřišel nato proč mi to tělá
 <a n:href="Post:rezerve $book->ID">
Problém je pak že mi zase nejde n:attr="disabled jelikož tam mám ten <a> a nevím jak znepřístupnit tenhle element :(
Editoval Koupilsemto (18. 5. 2018 17:54)

- Koupilsemto
 - Člen | 38
 
Žádný formulář jen get. Po kliknutí se pouze vloží log a update do databáze.
I když je to mimo topic nevěděl bys jak přepsat tento sql dotaz SELECT * FROM log WHERE date > (NOW() – INTERVAL 7 DAY) do podmínky?
->where('date >= ?', date('Y-m-d'))
Když se o to pokouším dostávám neustále chybu syntaxe nebo to zapíšu tak že ta podmínka to úplně ignoruje.
Editoval Koupilsemto (18. 5. 2018 19:21)

- Phalanx
 - Člen | 310
 
Píšu teď z hlavy, takže to ber spíš jako inspiraci.
<?php
$date = new DateTime("-7 days");
$result = $this->database->table('log')->where('date >= ?', $date->format('Y-m-d'))->fetchAll();
?>
Dej si pozor, date je klíčové slovo v MySQL, takže je možné, že budeš muset escapovat:
<?php
$date = new DateTime("-7 days");
$result = $this->database->table('log')->where('`date` >= ?', $date->format('Y-m-d'))->fetchAll();
?>