为了账号安全,请及时绑定邮箱和手机立即绑定

无法在表单中插入从数据库中检索到的信息

无法在表单中插入从数据库中检索到的信息

PHP
米脂 2021-12-03 15:04:41
我一般不熟悉 Nette 和 php 框架。我正在尝试创建一个带有选择菜单的表单,该菜单从数据库内的列中获取可选选项列表。<?phpdeclare(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;    }}我希望 $form 选择菜单包含供应商列表
查看完整描述

1 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

$supplier变量将包含Nette\Database\Row,您将其存储到$supplierList数组中。Form::addSelect期望数组,其中值是可以字符串化的东西。由于Row不喜欢被字符串化,您需要在列表中添加一些可以做的事情。提取列应该工作:


        $result = $this->database->query('SELECT supp_name FROM suppliers');

        foreach($result as $supplier){

            $supplierList[] = $supplier['supp_name'];

        }


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信