在一个继承Zend_Db_Tablb 的MODEL内用$this->select()实例select 对象后不能JOIN 并给出以下提示
网上的朋友也有遇到类似问题的但都没有人回答解决办法. 通过跟踪异常的抛出位置, 读其源码,
发现此$this->select()得到的select
对象是继承Zend_Db_Select对象的Zend_Db_Table_Select对象,
然后增加和OVERRIDE了以当前操作表为中心的方法. 出错的是assemble方法, 当类对其进行了OVERRIDE, 增加了完整性判断,
其要求操作的表必须是当前$_name指定的表格, 如果不是则抛出异常, 也就会出现上面那段信息. 所以如果要进行JOIN(包括left,
inner, right等)的操作就用Zend_Db_Select对象吧.
语句为$this->getDefaultAdapter()->select();
Zend_Db_Table_Select的灵活使用也会带来方便,因为其默认知道操作的当前表, 所以可以这样使用
return $this->select()->where('id = ?', $id)->query->fetchAll();
省去了很多代码量, 当然只针对当前操作的TABLE