Zend Framework - Zend_db_table_abtract select () - PullRequest
       5

Zend Framework - Zend_db_table_abtract select ()

0 голосов
/ 25 августа 2011

Я хочу использовать select(), где я могу получить только один столбец без указания имени таблицы. (Имя таблицы находится в переменной $ _name, объявленной в моей модели.) Я попробовал это:

$select->columns('field');

.. но я получаю сообщение об ошибке «Таблица не была указана для предложения FROM» - похоже, она ожидает имя таблицы.

Есть ли способ получить только один столбец?

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Ошибка правильная. Вам нужно указать таблицу, из которой вы хотите получить поле.

$select->from('table_name', array('field'));
1 голос
/ 25 августа 2011

Если ваш класс расширяет Zend_Db_Table_Abstract, вы можете использовать $this->fetchAll(), поэтому не нужно указывать имя таблицы.

Если вы все еще хотите использовать select(), передайте $this->_name какуже объявили значение $_name.

$this->select()->from($this->_name);

select() в основном используется для создания объекта запроса select, поэтому он не может угадать, из какой таблицы вы собираетесь, хотя в данный момент вы находитесь в модели.Это может быть не для запроса к той же таблице.Таким образом, вы должны передать имя таблицы.Подробнее см. http://framework.zend.com/manual/en/zend.db.select.html.Все для разных целей.Итак, вы хотите использовать по своему желанию.

...