两个模型作为Zend_Db_Select
个对象返回。
然后,我需要加入它们并一次获取数据。
class Model_User extends Abstract_Model {
public function sqlUser() {
return $this->select(array(
'user_id', 'user.name', 'user.login', 'address.street', 'city.city_id', 'city.city_name','region.region_id', 'region.region_name'
))
->joinUsing('address','address_id','') ->join('city', 'city.city_id = address.city_id', '')
->join('region', 'region.region_id = city.region_id', '');
}
}
class Model_Technics extends Abstract_Model{
public function sqlList() {
return $this->select()
// here some more sql
->joinUsing('catalog_model','model_id','');
}
}
然后我需要一些其他地方获取sqlList以及每个用户的所有信息。我不想复制所有代码,我只想通过join
从User模型加入sql答案 0 :(得分:0)
你可以遍历zend_db_select(columns,from,join,where)的“部分”,并找到一种方法将它们附加到另一个查询,但我不建议。
另一种方法可能是在您加入的模型上使用“join”方法,这将获取您的select对象并在其上运行join方法。当然,它将取决于已经在select对象中已经可用的表。或者该方法可能只是传回一个定义如何连接到连接模型表的结构,主模型可以决定如何处理它。
有很多解决方案,但是没有一种简单的方法可以将两个zend_db_select对象连接在一起,而它们之间没有一些额外的逻辑。 主要缺失的部分是两个模型之间的关系信息。
我知道这不是一个完整的答案(因为我还没有发表评论),但希望它会指向一条听起来有用的路径。