我正在使用Zend Framework开发一个系统,我使用Zend_Auth实现了用户/ rol身份验证以确保安全性,它可以接收用户/密码信息并返回模型用户和每个用户的rol。
在我的全局布局中,我有一个大横幅重定向到Home some/path/default/index/index
,然后在IndexController中,我重定向到用户的主页,该主页取决于其角色。当我在Windows上工作时,我没有任何问题。但是当我在我的Ubuntu中工作时,Zend Framework的_redirect
函数抛出了一个Doctrine的异常
Uncaught exception 'Doctrine_Connection_Pgsql_Exception' with message 'SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: ""
但错误始于Zend Broker。
我在前端控制器中使用插件来了解用户是否可以访问特定页面。我该如何解决这个错误?
这是我的堆栈跟踪:
Fatal error: Uncaught exception 'Doctrine_Connection_Pgsql_Exception' with message 'SQLSTATE[22P02]: Invalid text representation: 7 ERROR: invalid input syntax for integer: ""' in /home/project/library/Doctrine/Doctrine/Connection.php:1082 Stack trace: #0 /home/project/library/Doctrine/Doctrine/Connection/Statement.php(269): Doctrine_Connection->rethrowException(Object(PDOException), Object(Doctrine_Connection_Statement)) #1 /home/project/library/Doctrine/Doctrine/Connection.php(1006): Doctrine_Connection_Statement->execute(Array) #2 /home/project/library/Doctrine/Doctrine/Query/Abstract.php(976): Doctrine_Connection->execute('SELECT u.usuari...', Array) #3 /home/project/library/Doctrine/Doctrine/Query/Abstract.php(1026): Doctrine_Query_Abstract->_execute(Array) #4 /home/project/library/Zend/Controller/Plugin/Broker.php on line 336
提前致谢
答案 0 :(得分:0)
从技术上讲,大多数助手(尤其是这个助手)在任何平台上都以相同的方式工作。为了帮助您找出问题所在,我有两点建议。
确保您在两个系统上处于相同的环境中。如果在一个中你有APPLICATION_ENV'开发者'而另一个是'生产',这可能会导致不同系统上的不同行为。
另一件事是确保您将环境设置在您认为自己设置的位置。一些教程通过SetEnv APPLICATION_ENV开发人员(例如)促进在.htaccess文件中设置环境,因此您在public / index.php中设置的内容可能根本没有设置。
还有一种想法是,两个系统上的包含路径可能预设(在public / index.php之前)不同。
希望这有助于此过程:)