Zend DB Table没有看到FROM子句

时间:2011-04-07 04:49:35

标签: zend-framework

我有一个Zend DB Table类,它包装了我的Country表。当我创建一个select对象时,虽然它告诉我在我的SQL语句中没有FROM子句。这是代码:

$table = new Application_Model_DbTable_Countries();
$rows = $table->fetchAll($table->select()->columns(array('id', 'name')));       
$countryList = (array) $rows;

如果我在 - > select()之后立即包含 - > from('Countries'),则表示'select query无法与其他表连接'。

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

当您使用columns命令时,您必须使用from调用来指定表,如此



$rows = $table->fetchAll($table->select()->from( 'tablename')->columns(array('id', 'name')));       



我不确定为什么,但我认为这是因为一旦你开始使用列调用并构建自己的选择,Zend假设你可能正在做连接和其他魔术。

即使您在表类中指定了$ _name变量,它也会给您带来错误。

我相信你也可以做到以下几点:



$rows = $table->fetchAll($table->select(true)->columns(array('id', 'name')));       


这将告诉select包含表类中的表。