【问题标题】:Edit Form in Zend在 Zend 中编辑表单
【发布时间】:2015-03-10 19:31:38
【问题描述】:

我正在尝试使用表单从数据库中填充它,并且用户可以编辑信息。我添加了名为“Number”的模型:

Number.php:

<?php
class Model_Number extends Zend_Db_Table_Abstract
{
    protected $_name = 'cc_number';
    protected $_schema = 'general'; 
}

在这张表 (cc_number) 中,我有三个字段:“id , number , country
在应用程序/表单中,我添加了这个表单:

EditNumber.php:

<?php
Class Form_EditNumber extends Zend_Form 
{
    public function __construct($option = null)
    {
        parent::__construct($option);
        $this->setName('edit_number');
        $message = new Zend_Form_Element_Text('message');
        $message->setLabel(' number :')
                  ->setRequired(true);

        $country = new Zend_Form_Element_Text('country');
        $country->setLabel(' country name :')
                  ->setRequired(true);
        $login = new Zend_Form_Element_Submit('login');
        $login ->setLabel('edit ');
        $this ->addElements(array($message,$login));
        $this->setMethod('post');
    }
}

在控制器中,我尝试从 URL 的最后一部分获取数字,然后从该数字获取信息:

编号/编辑操作:

        public function editAction(){
            $request = $this->getRequest();
            $form_number = new Form_EditNumber();
            $uri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();
            $part = basename($uri);
            $numberModel = new Model_Number();
            $select = $numberModel->fetchRow($numberModel->select()->where("number =  '$part'"));
            $this->view->edit_form = $form_number->populate($select->toArray());

        }

【问题讨论】:

    标签: php zend-framework zend-form populate


    【解决方案1】:

    我不会以这种方式从 Uri 获得$part。 它应该来自请求的$_GET 部分

    你能不能print_rZend_Controller_Front::getInstance()-&gt;getRequest() 的内容,因为那样你可能会得到$part

    【讨论】:

      【解决方案2】:

      要从请求中获取值,请在控制器中使用$this-&gt;getRequest()-&gt;getParam('ParamName');,其中ParamName 是最后一个参数的名称以及您想要的数字。

      $part = $this->getRequest()->getParam('ParamName');
      

      然后在查询中你需要像这样传递这个值:

       $select = $numberModel->fetchRow($numberModel->select()->where("number = ". $part));
      

      提示:最好使用 PDO

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-10
        • 2012-09-28
        相关资源
        最近更新 更多