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