又是一个 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 属性?
干杯斯图尔特