【发布时间】:2009-10-07 14:06:30
【问题描述】:
又是一个 Zend 框架问题!任何帮助表示赞赏。
我有一个 DB 表类,我想在发布表单时使用它来插入/更新行,并且我想使用 save() 方法,因此它都可以通过相同的方法。
//Users Db Table class
class DBTables_Users extends Zend_Db_Table_Abstract
{
protected $_name = "users";
protected $_primary = "userID";
}
所以这是我的测试代码...
$userArray = array( 'userID' => 1,
'firstName' => 'Test',
'lastName' => 'Test',
'emailAddress' => 'test@hotmail.com'
);
$user = new DBTables_Users();
$newUserRow = $user->createRow($userArray);
$newUserRow->save();
这在没有“userID”项的情况下完美地工作并且插入正常,但是如果我添加它,它会尝试再次插入它并出现重复键错误的错误。
对我来说,该行应该承认主键的存在并将其用作 where 子句来更新该行。然而,在深入研究代码之后,它检查的唯一内容是确定它是插入还是更新,如果配置有一个“数据”选项,它在构造时填充的“_cleanData”变量的存在使用时没有createRow 方法。
我是不是走错了路,还是需要一个丑陋的修复自己在覆盖中设置 _cleanData 属性?
干杯 斯图尔特
【问题讨论】:
-
我的回答是否解决了这个问题,还是您需要更多信息?谢谢
标签: zend-framework zend-db zend-db-table