私はグーグル、チュートリアル、ブログを読んで、多くの実験をしました。だから私はコントローラのアクションへのロールベースのアクセスを定義することができます。 すべて正常に動作します。 私が尋ねたいことは何ですか。ユーザーの投稿を表示、編集、削除するルールを作成するにはどうすればよいですか?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ですacitonIndex '$ this-> userId' – Orlymee
コントローラでは' $ this-> userId'の値を設定していますか? –