zend framework 1 如何将表单字段设置为另一个 table 的 select

zend framework 1 how to set a form fiels as select from another table

我有一个链接数据库的输入表单 table 其中一个字段设置为另一个字段的下拉列表 table 换句话说,我希望字段 id_magasin选自 table magasin 这是代码 在这种情况下,它显示 id magasin 为空

   <?php

class Application_Form_Produit extends Zend_Form
{

    public function init()
    {
       $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');
        $nom = new Zend_Form_Element_Text('nom');
        $nom->setLabel('Nom du produit')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');

        $prix_unitaire = new Zend_Form_Element_Text('prix_unitaire');
        $prix_unitaire->setLabel('prix_unitaire')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');

        $id_magasin = new Zend_Form_Element_Select('id_magasin'.'magasin');
        $id_magasin->setLabel('Magasin')
        ->setRequired(true)
        ->addFilter('StripTags')
        ->addFilter('StringTrim')
        ->addValidator('NotEmpty');

        $mag = new Application_Model_DbTable_Magasin();
        $data = $mag->getAll();
        foreach($data as $d){
            $id_magasin->addMultiOption($d->id_magasin);



        $envoyer = new Zend_Form_Element_Submit('envoyer');
        $envoyer->setAttrib('id','boutonenvoyer');
        $this->addElements(array($id, $nom, $prix_unitaire,$id_magasin, $envoyer));
    }


}
}

您需要为下拉选项提供显示值。变化:

$id_magasin->addMultiOption($d->id_magasin);

$id_magasin->addMultiOption($d->id_magasin, $d->id_magasin);

在select中显示id。

此外,我不知道您的 Application_Model_DbTable_Magasin 中是否有函数 "getAll()" 或者您是否正在扩展 Zend_Db_Table_Abstract 但 Zend_Db_Table_Abstract 继承的默认函数是获取全部()。也许你也必须更换它。