Tôi googled, đọc hướng dẫn, blog và thử nghiệm rất nhiều. Vì vậy, tôi có thể xác định vai trò dựa trên truy cập vào hành động điều khiển. Mọi thứ đều hoạt động tốt. Điều tôi muốn hỏi là. Làm cách nào tôi có thể viết quy tắc để hiển thị, chỉnh sửa và xóa bài đăng của riêng người dùng?Truy cập dựa trên vai trò của Yii, quản lý các bài đăng của riêng mình
Theo mặc định, nó hiển thị tất cả bài đăng. Tuy nhiên, chúng tôi có thể đặt tiêu chí của nhà cung cấp dữ liệu để hiển thị bài đăng của riêng mình. Nhưng làm thế nào tôi có thể kiểm soát CRUD cho điều đó ?? Vui lòng giúp tôi. Mã của tôi là dưới đây.
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('*'),
),
);
}
cho bài display:
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,
));
}
chỉ cần thêm userid đến những hành động giống như bạn là doi ng cho acitonIndex '$ this-> userId' – Orlymee
nơi trong controller bạn thiết lập' $ this-> userId' value? –