Statik yöntem, Zend_View hata

0 Cevap php

Ben temelde belirli kriterlere sahip tüm satırları alır bir model üzerinde statik bir yöntem 'findAll' var. Bu yöntem iyi çalışır ve ben kullanarak çağırabilirsiniz:

$m::findAll();

$ M bir değişken olarak modele adıdır. Ben çıktı bu olabilir ve doğru sonuçlar verir. Ancak,, Zend_View nesne bir değişkene bu atarken:

$this->view->viewvariable = $m::findAll();

Ben hata alıyorum:

Zend_Db_Table_Exception: Too many columns for the primary key

Herhangi bir fikir neden?

Tüm fonksiyonu bulmak:

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();
  }
 }

Note: This function works fine her yerde ayrı bir görünüm değişkene atarken. Ben aşağıda (bir görünüm değişkene atama değil) çalıştırırsanız, doğru dizi verileri gösterir.

   var_dump($m::findAll($module['where'], $module['options']));
   exit;

Benim görüşüme göre (bu yazının uğruna viewvariable ile gerçek adını değiştirdim):

<?php foreach($this->viewvariable as $item) { ?>
//Do some echoing of data in $item
//Close foreach

0 Cevap