У меня есть статический метод 'findAll' в модели, который в основном получает все строки с определенными критериями. Этот метод работает нормально, и я могу вызвать его с помощью:
$m::findAll();
Где $ m - имя модели в качестве переменной. Я могу вывести это, и он возвращает правильные результаты. Однако при присвоении этого значения переменной в объекте Zend_View, например:
$this->view->viewvariable = $m::findAll();
Я получаю ошибку:
Zend_Db_Table_Exception: слишком много
столбцы для первичного ключа
Есть идеи, почему?
Найти все функции:
final public static function findAll($where = false, array $options = array()) {
$object = new static();
if (!empty($options)) $options = array_merge($object->options, $options);
else $options = $object->options;
$run = $object->buildDefaultSelect($where, $options);
$rows = $run->fetchAll();
if ($options['asObject'] == true) {
$result = array();
foreach ($rows as $r) {
$class = new static();
$class->setInfo($r);
$result[] = $class;
}
return $result;
} else {
if (count($rows) > 0) return $rows;
else return array();
}
}
Примечание: Эта функция отлично работает везде, кроме назначения переменной вида. Если я запускаю приведенное ниже (не назначая его переменной представления), он показывает правильные данные массива.
var_dump($m::findAll($module['where'], $module['options']));
exit;
На мой взгляд (я заменил реальное имя на viewvariable ради этого поста):
<?php foreach($this->viewvariable as $item) { ?>
//Do some echoing of data in $item
//Close foreach