Zend Select Join问题

本文探讨了在使用Zend_Db_Table_Select时加入JOIN操作遇到的问题及解决办法。作者建议使用Zend_Db_Select对象来进行JOIN操作,并指出Zend_Db_Table_Select在默认操作当前表时的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    在一个继承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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值