我使用Google搜索,閱讀教程,博客並進行了大量實驗。所以我可以定義基於角色的訪問控制器操作。 一切工作正常。 我想問的是。我如何編寫規則來顯示,編輯和刪除用戶自己的帖子?Yii基於角色的訪問,管理自己的職位
默認情況下,它會顯示所有帖子。但是,我們可以將數據提供者標準顯示爲自己的帖子。但是,我怎樣才能控制CRUD呢? 請幫助我。我的代碼是波紋管。
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'view'),
'users' => array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions' => array('create', 'update'),
'expression' => 'Yii::app()->controller->HaveAccess()',
//'users' => array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('admin', 'delete'),
'expression' => 'Yii::app()->controller->HaveAccess()',
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
爲後顯示:
public function actionIndex() {
$dataProvider = new CActiveDataProvider('Advertisment');
if (!$this->IsAdmin()) {
$dataProvider = new CActiveDataProvider('Advertisment', array(
'criteria' => array(
'condition' => 'added_by='.$this->userId,
'order' => 'id DESC',
),
'pagination' => array(
'pageSize' => 20,
),
));
}
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
只需將用戶ID添加到像你一樣的行爲是doi ng for acitonIndex'$ this-> userId' – Orlymee
在控制器中的哪個位置設置'$ this-> userId'的值? –