Vykreslit rozbalovací menu které si bere informace z DB

iDome89
Člen | 27
+
0
-

Ahoj,
jsem uplný nováček v Nette a back-endu obecne.

Snažím se přijít na to proč ve formuláři u výběru dodavatele nedokážu vybrat ty co mám uložené v DB.

<?php

declare(strict_types=1);

namespace App\Presenters;

use Nette\Application\UI;

class HomepagePresenter extends UI\Presenter
{
     /** @var Nette\Database\Context */

     private $database;

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

    protected function createComponentCalculationForm(): UI\Form
    {
        $result=$this->database->query('SELECT supp_name FROM suppliers');
        foreach($result as $supplier){
            $supplierList[]=$supplier;
        }

        $form = new UI\Form;
        $form->addSelect('supplier', 'Dodavatel:',$supplierList);
        $form->addText('quantity', 'Ks')
             ->setRequired()
             ->addRule($form::INTEGER,"Hodnota musí být číslo" )
             ->addRule($form::MIN,'Číslo musí být kladné!',0);
        $form->addText('price', 'Kč')
             ->setRequired()
             ->addRule($form::INTEGER,"Hodnota musí být číslo" )
             ->addRule($form::MIN,'Číslo musí být kladné!',0);
        $form->addButton('calculate', 'Spočítat')
             ->setHtmlAttribute('onclick', 'calculatePrice()');
        $form->addTextArea('result');
        return $form;
    }

}
?>
popcorn
Člen | 28
+
0
-

Čau, zkus

foreach($result as $supplier) {
    $supplierList[] = $supplier[0];
}
MajklNajt
Člen | 471
+
0
-

ahoj, keď už si použil Nette\Database\Context, vyzeralo by to krajšie takto:

$supplierList = $this->database->table("supplier")->fetchPairs("id", "supp_name");

vráti ti to pekne pole v tvare id => supp_name

iDome89
Člen | 27
+
+1
-

popcorn napsal(a):

Čau, zkus

foreach($result as $supplier) {
    $supplierList[] = $supplier[0];
}

už to funguje, díky moc :)

iDome89
Člen | 27
+
0
-

MajklNajt napsal(a):

ahoj, keď už si použil Nette\Database\Context, vyzeralo by to krajšie takto:

$supplierList = $this->database->table("supplier")->fetchPairs("id", "supp_name");

vráti ti to pekne pole v tvare id => supp_name

Díky za radu, určitě to zkusím.