Я искал ответ в течение часа или двух и не могу его найти. У меня есть этот класс, который расширяет Zend_Db_Table_Abstract
, где я заполняю имя таблицы и ее первичный ключ. Вот он:
<?php
class Produit_Model_DbTable_Fiche extends Zend_Db_Table_Abstract
{
/**
* @var string
*/
protected $_name = 'table_name';
/**
* @var string
*/
protected $_primary = 'primary';
public function getName()
{
return $this->_name;
}
public function getPrimary()
{
return $this->_primary;
}
}
Как вы можете видеть, защищенный атрибут _primary является строкой. Однако, когда я получаю эту информацию через $db->getPrimary()
в следующем коде, она возвращается как массив, который имеет только одну запись [1] => 'id'
.
// $db is an instance of Produit_Model_DbTable_Fiche
$select = $db->select();
$select->from($db, $columns)
->where($db->info('primary').' = ?', $id);
$row = $db->fetchRow($select);
сообщение об ошибке указывает, что Column not found: 1054 Unknown column 'Array' in 'where clause'
потому что, как я уже сказал, я пытаюсь повторить массив с $db->info('primary')
в то время как я ожидаю, что это будет строка.
PS: Я видел этот вопрос/ответ, но я до сих пор в размытости: Zend_Db_Table_Abstract::_primary returns array?