1

请帮助我,我是zend框架和OPP的新手。我正在构建一个 viewhelper 类,其中包含一个从 FormHidden 扩展的隐藏输入(称为:ITinputhidden)(使用 Zend\Form\View\Helper\FormHidden 并使用 Zend\Form\Element)。我还在 Module.php 中声明了这个类(函数:getViewHelperConfig)。但是访问的时候有警告:

严格标准: ITEquip\Form\View\Helper\FormHidden::__invoke() 的声明应该与 C:\ 中的 Zend\Form\View\Helper\FormInput::__invoke(Zend\Form\ElementInterface $element = NULL) 兼容xampp\htdocs\itequip.mvn\library\ITEquip\Form\View\Helper\FormHidden.php 在第 10 行

也许原因是方法魔术 __invoke 在我看来帮助程序与 Zend 中的 __invoke 不兼容。(在 viewhelper 的 __invoke 方法中,我使用了 2 个变量:$name 和 $value ,但是 Zend\Form\ElementInterface 的 __invoke 中只有一个变量($element = NULL)。但我无法修复它。我将如何做?

请查看我的代码:我的 viewhelper 文件(FormHidden.php):

namespace ITEquip\Form\View\Helper;

use Zend\Form\View\Helper\FormHidden as ZendFormHidden;
use Zend\Form\Element;


class FormHidden extends ZendFormHidden
{
   public function __invoke($name,$value) {
    $element = new Element\Hidden($name);
    $element->setValue($value);
    return $this->render($element);
   }
}

模块.php 文件

public function getViewHelperConfig(){
    return array(
            'invokables'    =>array(
                'ITFormHidden'  => '\ITEquip\Form\View\Helper\FormHidden',
            )
    );  
}

索引.phtml 文件

<?php
//CREATE INPUT HIDDEN
$inputHiddenOrder   = $this->ITFormHidden('order','ASC');   
$inputHiddenOrderby = $this->ITFormHidden('order_by','colorcode');  

$strInputHidden     = $inputHiddenOrder. $inputHiddenOrderby;
echo $strInputHidden;
?>

请帮我。提前谢谢你。

4

0 回答 0