Php Can';t使用Zend_Db_Table_行中的createRow
我有一个Php Can';t使用Zend_Db_Table_行中的createRow,php,zend-framework,model,insert,Php,Zend Framework,Model,Insert,我有一个Model\u User类,它正在扩展Zend\u Db\u Table\u行,但是当我尝试插入这样一行时: $user = new Model_User(); $data = array( 'user_login' => $form->getValue('username'), 'user_password' => $this->saltPassword($form->getValue('password'
Model\u User
类,它正在扩展Zend\u Db\u Table\u行
,但是当我尝试插入这样一行时:
$user = new Model_User();
$data = array(
'user_login' => $form->getValue('username'),
'user_password' => $this->saltPassword($form->getValue('password')),
'user_email' => $form->getValue('email')
);
$newUser = $user->createRow($data);
我收到一个错误:发生了一个错误,应用程序错误
(实际上,有人知道如何获得更清晰的错误信息吗?这些信息非常模糊)
我的模型类如的解决方案中所述。(因此我还有一个Model\u User\u Table
类,它扩展了Zend\u Db\u Table\u Abstract
)
有什么想法吗?方法
createRow
是为Zend\u Db\u Table\u Abstract
定义的,而不是为Zend\u Db\u Table\u Row\u Abstract
定义的。只需将代码更改为
$user = new Model_User_Table();
$newUser = $user->createRow($data);
为了获得更清晰的错误信息,将Zend置于开发模式。默认的生产行为是使错误消息静音,以使攻击者更难使用您的应用程序生成的故障信息来攻击您。我如何切换到开发模式?我的应用程序中有几个“类别”。谢谢你的帮助!但是我的Model_User应该表示我的User表中的一行,而不是我的整个表(我发布的链接就是这么说的)Zend_Db_table_row_Abstract与createRow有类似的方法吗?谢谢Zend_Db_Table_Abstract::createRow()返回Zend_Db_Table_Row_Abstract的一个实例,因此您的$newUser对象实际上代表一行。啊,我明白了!还有一个问题你可以帮我:在这种情况下,我怎样才能让$newUser成为Model_用户对象,这样我就可以在这个对象上调用我的用户方法了。正如你所说的,它们是相同的类型,但我想不出怎么做..只需将这个:protected$\u rowClass='Model\u User'添加到您的Model_User_表类中即可;