多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> 该功能允许管理员仅展示其自身或下属管理员添加的信息,从而实现对特定控制器内数据的权限控制。 ***** ### 操作步骤 1、首先为当前控制器配置`$dataLimit`属性,具体如下: ~~~php //须继承后台Backend后台基类 use app\common\controller\Backend; class Page extends Backend { //开启数据限制 protected $dataLimit = 'personal'; //数据限制字段,数据表内必须存在此字段 protected $dataLimitField = 'admin_id'; //数据限制开启时自动填充字段值为当前管理员id protected dataLimitFieldAutoFill = true; } ~~~ ***** #### dataLimit | 值 | 说明 | | --- | --- | | false | 默认为`false`,表示不启用 ,展示所有数据 | | auth | 显示当前及下属管理员的所有数据 | | personal | 只显示当前用户的数据 | ***** #### dataLimitField 数据表必须包含`admin_id`字段,类型为`int(10)`,如果不想使用`admin_id`字段,比如用`adminid`字段,则可以在当前控制器中定义个`$dataLimitField`属性,如下: ~~~php class Page extends Backend { protected $dataLimit = 'personal'; protected $dataLimitField = 'adminid'; } ~~~ ***** #### dataLimitFieldAutoFill 通过将此属性设置为`true`来开启`dataLimitField`字段的自动维护,默认就是开启的。开启后,管理员在添加数据时,会自动在此字段内写入当前管理员的`id`号。 ***** ### 自定义权限数据 若现有的默认权限设置不符合你的需求,你可以在当前控制器自定义一个`getDataLimitAdminIds`的方法,该方法返回可以查看管理员数据的管理员ID集合,如下: ~~~php protected function getDataLimitAdminIds(){ $adminIds = [];//你的自定义可以查看管理员数据的管理员ID的集合 return $adminIds; } ~~~ ***** ### 温馨提示 > 一旦启用`$dataLimit`功能,当前控制器的添加、编辑、删除、批量操作、Selectpage都会做相应的限制和权限判断。 > 如果你重写了`index/add/edit/del/multi`等方法,需要你自己使用`$adminIds = $this->getDataLimitAdminIds();`来获取获取数据限制的管理员ID集合。