gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:12 25 4
gpt4 key购买 nike

总的来说,我是 Nette 和 php 框架的新手。我正在尝试创建一个带有选择菜单的表单,该菜单从数据库中的列中获取 optional 列表。

<?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;
}

}

我希望 $form 选择菜单包含供应商列表

最佳答案

$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'];
}

关于php - 无法将从数据库中检索到的信息插入到表单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57614987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com