Вы должны были бы продлить Zend_Db_Table_Row
, чтобы выполнить это. К счастью, ZF специально для этой цели включает метод _transformColumn()
. Но я забегаю вперед. Сначала настройте класс таблицы. Это предполагает, что в вашей базе данных есть таблица с именем "foo_mytable":
class MyTable extends Zend_Db_Table_Abstract {
protected $_name = 'foo_mytable';
protected $_rowClass = 'My_Db_Table_Row';
}
Далее создайте свой собственный класс строк:
class My_Db_Table_Row extends Zend_Db_Table_Row {
protected function _transformColumn($columnName) {
$columnName = parent::_transformColumn($columnName);
$prefix = 'us_';
return $prefix . $columnName;
}
}
Теперь вы можете сделать что-то вроде этого (для простоты этот пример игнорирует идеалы проектирования MVC):
$table = new MyTable();
$records = $table->fetchAll();
foreach ($records as $record) {
echo $record->name;
}
Если в вашей таблице есть столбец с именем "us_name", это должно работать. Я проверял это сам. Обратите внимание, что в пользовательской строке таблицы вы можете получить префикс таблицы из файла конфигурации. Если он хранится в вашем реестре, вы можете заменить $prefix = 'us_';
на $prefix = Zend_Registry::get('tablePrefix');
.