При расширении Zend_Db_Table_Abstract для создания соединения происходит сбой MySQL - PullRequest
0 голосов
/ 20 сентября 2011

Я хочу понять, почему это прекрасно работает без проблем.

$this->db   =   Zend_Db_Table_Abstract::getDefaultAdapter();

   public function getMessages()
    {

        $select = $this->db->select();
        $select
            ->from('Mail_Text', '*')
            ->join(
                array('Mail' => 'Mail'),
                'Mail.id = Mail_Text.parent_id', '*'
                );
        return $this->db->fetchAll($select);
          }

Теперь, если я сделаю это, расширяя Zend_Db_Table_Abstract

class Mail_Model_Text extends Zend_Db_Table_Abstract
{

        protected $_name = 'Mail_Text';
        public function fetchMessges(){
        $select = $this->select();
        $select->setIntegrityCheck(false)
            ->from($this->_name, '*')
            ->join(
                array('Mail' => 'Mail'),
                'Mail.id = Mail_Text.parent_id', '*'
                );
        return $this->fetchAll($select);

}
}

Это дает сбойMySql Я хотел бы сохранить код отдельно, но я могу присоединиться к этим таблицам.Все одиночные запросы выбора и обновления отлично работают.У меня есть исследования по всей сети, и я не могу найти решение этой головоломки.Любая Помощь его была бы большой Спасибо заранее.

1 Ответ

0 голосов
/ 18 апреля 2012

Вам не нужен оператор from () или вам нужно псевдоним таблицы с тем же именем:

класс Mail_Model_Text extends Zend_Db_Table_Abstract {protected $ _name = 'Mail_Text';

public function fetchMessges()
{
    $select = $this->select();
    $select->setIntegrityCheck(false)
        ->join('Mail', 'Mail.id = Mail_Text.parent_id');

    return $this->fetchAll($select);
}

}

Также убедитесь, что вы правильно проиндексировали свои таблицы.

...