FastAdmin控制管理員只顯示自己添加的數據
發布於 2017-09-15 11:27:20
FastAdmin從1.0.0.20170915_beta版本開始添加了一項新的功能,可以單獨控制某個控制器只顯示當前管理員自己添加的數據,如果你的FastAdmin版本低於該版本,則沒有該功能,快升級最新版體驗吧!
下面簡單講解一下該功能的實現方法。
操作步驟
1、首先我們給當前控制器添加一個$dataLimit屬性,如下
class Page extends Backend
{
protected $model = null;
protected $dataLimit = 'personal'; //這個屬性在基類已經定義,默認為false,表示不啟用,$dataLimit可使用auth和personal兩個值
}
$dataLimit默認為false,表示不啟用,$dataLimit可使用auth和personal兩個值,下面簡單介紹一下它的意思
$dataLimit = false; //表示不啟用,顯示所有數據
$dataLimit = 'auth'; //表示顯示當前自己和所有子級管理員的所有數據
$dataLimit = 'personal'; //表示僅顯示當前自己的數據
2、給我們的數據表添加一個admin_id字段,類型為int(10),如果不想使用admin_id字段,我們改用adminid字段,則可以在當前控制器中定義個$dataLimitField屬性,如下
class Page extends Backend
{
protected $model = null;
protected $dataLimit = 'personal';
protected $dataLimitField = 'adminid';
}
溫馨提示
一旦啟用$dataLimit功能,當前控制器的添加、編輯、刪除、批量操作、Selectpage都會做相應的限制和權限判斷。
如果你重寫了index/add/edit/del等方法,需要你自己使用$adminIds = $this->getDataLimitAdminIds();來獲取獲取數據限制的管理員ID集合。
