我有一个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无法与其他表连接'。
我做错了什么?
谢谢!
答案 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包含表类中的表。