簡體   English   中英

Zend_Db_Select加入Zend_Db_select

[英]Zend_Db_Select join to Zend_Db_select

返回兩個模型作為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。 我不想復制所有代碼,我只想通過聯接從用戶模型聯接sql

您可以遍歷zend_db_select的“部分”(列,來自,聯接,位置),並找到一種將它們附加到其他查詢中的方法,但是我不建議這樣做。

一種替代方法是在要加入的模型上使用“ join”方法,該方法將獲取您的選擇對象並在其上運行join方法。 當然,這將取決於select對象中已經可用的表。 或者該方法可能只是傳回一個結構,該結構定義了如何聯接到聯接模型的表,您的主模型可以決定如何處理該表。

有很多解決方案,但是沒有真正簡單的方法將兩個zend_db_select對象卡在一起,而又不需要在它們之間添加任何邏輯。 主要缺少的部分是兩個模型之間的關系信息。

我知道這不是一個完整的答案(因為我無法發表評論),但希望它將為您指明一條聽起來可行的道路。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM