Еще раз вопрос Zend Framework! Любая помощь приветствуется.
У меня есть класс таблицы БД, который я хочу использовать для вставки / обновления строк при публикации формы, и я хотел бы использовать метод save (), чтобы он мог проходить через один и тот же метод.
<code>
//Users Db Table class
class <code>DBTables_Users</code> extends <code>Zend_Db_Table_Abstract</code>
{
protected <code>$_name</code> = "users";
protected <code>$_primary</code> = "userID";
}
Так вот мой тестовый код ...
<code>
$userArray = array( 'userID' => 1,
'firstName' => 'Test',
'lastName' => 'Test',
'emailAddress' => 'test@hotmail.com'
);</p>
<p>$user = new DBTables_Users();</p>
<p>$newUserRow = $user->createRow($userArray);</p>
<p>$newUserRow->save();
Это прекрасно работает без элемента "userID" и вставляется нормально, но если я добавлю его, он попытается вставить его снова и выдает ошибку с повторяющимся ключом.
Для меня строка должна подтвердить наличие первичного ключа и использовать его в качестве предложения where для обновления строки. Однако после углубления в код, единственное, что он проверяет, чтобы определить, является ли он вставкой или обновлением, это наличие переменной «_cleanData», которая заполняется при построении, если в конфигурации есть опция «data», которой нет при использовании метод createRow.
Я поступаю об этом неправильно или нужно некрасивое исправление установки свойства _cleanData самостоятельно в переопределении?
Приветствие
Стюарт