我正在对我的登录表单进行一些测试,但我注意到如果我没有发送所有预期的参数,我会收到此错误:
致命错误:在第47行的C:\ demo \ application \ controllers \ ErrorController.php中的非对象上调用成员函数hasResource()
例如这个测试代码给了我错误:
public function testLoginPage ()
{
$this->request->setMethod('POST')->setPost(
array('username' => 'foobar');
$this->dispatch('/usuario/login');
}
但如果我发送所有元素,一切都按预期工作:
public function testLoginPage ()
{
$this->request->setMethod('POST')->setPost(
array('username' => 'foobar','password' => 'secret');
$this->dispatch('/usuario/login');
}
这是正常的吗?我不明白为什么我在ErrorController.php
上收到错误,连接在哪里?
(我认为这可能是没有加载的东西,但为什么它在所有元素都有效的时候起作用?)
理解这一点的任何帮助将不胜感激。
由于
更新
我只是在application.ini中更改了db database的错误密码,这给了我同样的错误。现在我甚至不认为是形式,但可能会在bootstart上调用,这取决于Zend_Auth身份。但是Fatal error: Call to a member function hasResource() on a non-object
是什么意思?如何加载该对象?
答案 0 :(得分:4)
阅读您收到的错误消息。您在hasResource()
中的非对象上调用了ErrorController.php
。您的错误控制器已损坏,但这不是问题所在。
问题是在某个地方(可能在您的表单,引导程序或其他任何地方)抛出异常会触发错误控制器。修复或禁用错误处理程序以获取异常消息和堆栈跟踪以找出问题。
禁用错误处理程序
$front = Zend_Controller_Front::getInstance();
$front->setParam('noErrorHandler', true);