[英]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.