DBTable создает новую строку вместо обновления существующего

0

Я пытаюсь обновить запись БД теперь данными, но я просто создаю новую запись:

$client =$this->clientTable->find($id);
$client->CompanyName = $request->getPost('CompanyName');
$this->clientTable->update();
$this->_redirect('client/index');
Теги:
zend-framework
zend-db

1 ответ

0
Лучший ответ

Метод Zend_Db_Table_Abstract :: find() возвращает объект Zend_Db_Table_Rowset. Вы должны использовать метод, который вернет вам объект Zend_Db_Table_Row и его использование.

Например:

$clientRow = $this->clientTable->fetchRow(array('id' => $id));
$clientRow->CompanyName = $request->getPost('CompanyName');
$clientRow->save();

Если имя первичного ключа вашей таблицы не является " id ", измените его на подходящее значение в первой строке вышеприведенного кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню