2013-02-20 16 views
0

我有这样的方法在模型TaiKhoan我需要帮助有关输入滤波器

public function getInputFilter() 
{ 
    if (!$this->inputFilter) 
    { 
     $inputFilter = new InputFilter(); 
     $factory  = new InputFactory(); 

     $inputFilter->add($factory->createInput(array(
      'name'  => 'TenTaiKhoan', 
      'required' => true, 
      'filters' => array(
        array('name' => 'StripTags'), 
        array('name' => 'StringTrim'), 
      ), 
    ))); 

     $inputFilter->add($factory->createInput(array(
      'name'  => 'MatKhau', 
      'required' => true, 
      'filters' => array(
        array('name' => 'StripTags'), 
        array('name' => 'StringTrim'), 
      ), 
    ))); 
    } 

    return $this->$inputFilter; 
} 

然后我用它在我的控制器一样

$taikhoan = new TaiKhoan(); 

$形式 - > setInputFilter($ taikhoan-> getInputFilter( ));

当我运行,这表明我这个错误

Catchable fatal error: Object of class Zend\InputFilter\InputFilter could not be converted to string in C:\wamp\www\ZF\module\CPanel\src\CPanel\Model\TaiKhoan.php on line 59 

回答

1

的问题是在此声明一个错字:

return $this->$inputFilter; 

PHP在解释这个线作为动态属性的名称,它这个转换为字符串。正确的版本是:

return $this->inputFilter; 

而且你需要的东西分配给输入滤波器:

public function getInputFilter() 
{ 
    if (!$this->inputFilter) 
    { 
     // ... 
     $this->inputFilter = $inputFilter; 
    } 

    return $this->inputFilter; 
} 
0

你懒加载输入滤波器,但从来没有设置$this->inputFilter

public function getInputFilter() 
{ 
    if (!$this->inputFilter) 
    { 
     $this->inputFilter = new InputFilter(); 
    } 
    return $this->inputFilter; 
} 

不确定这是否是您的问题,因为错误是将您的输入过滤器转换为字符串。请提供TaiKhoan.php第59行的确切代码。

+0

感谢您的帮助 – 2013-02-20 17:44:51