簡體   English   中英

擴展zend db select

[英]extending zend db select

我正在建立一個CMS類型的網站,會有很多管理員用戶。 ACL已用於業務層。 但現在我們要將自定義ACL邏輯應用於基於admin用戶所屬城市的模型。

例如:管理員用戶來自紐約。 他可以查看與紐約市相關的內容。

我在模型中使用Zend_Db_Select構建了很多查詢。 現在我已經在各處更改了查詢。 有沒有辦法,我可以為每個查詢添加邏輯 - > where('u.city_id =?',$ admin_user_city_id)。

提前致謝。

謝謝Venu

我認為您可能不需要擴展Zend_Db_Table_Select 您可以通過僅使用My_Db_Table_Abstract擴展Zend_Db_Table_Abstract來完成您正在尋找的My_Db_Table_Abstract ,您的所有模型也將擴展。 在該抽象類中,您將擴展返回Zend_Db_Table_Select的默認select() ,並在返回之前,只需將where子句添加到它。

因此,每次使用$myModel -> select()調用select時,它都會包含where子句。

abstract class My_Db_Table_Abstract extends Zend_Db_Table_Abstract
{
    public function select($withFromPart = self::SELECT_WITHOUT_FROM_PART)
    {
        $select = parent::select($withFromPart);
        # Retreive $admin_user_city_id
        $select -> where('u.city_id = ?', $admin_user_city_id);
        return $select;
    }
}

當然,這也意味着你已經做出了正確的加入到你的u表將取決於你在模型上的某個地方。

暫無
暫無

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

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