رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ایجاد یک فیلتر برای سلکت ها
#1
سلام
من میخام برای سلکت ها یک فیلتر بزارم طوری که هر کاربر فقط بتونه پست های خودش رو انتخاب کنه و میخام این فیلتر به صورت خودکار اجرا بشه .. فک کنم قبلا از scpos (یا همچین چیزی) استفاده میشد

ممنون میشم راهنمایی کنید.
پاسخ
تشکر شده توسط:
#2
میتونید از فیلترهای سفارشی استفاده کنید ولی ترجیحاً بهتره این کار رو با RBAC انجام بدین.
پاسخ
تشکر شده توسط:
#3
(03-10-1394، 06:07 ب.ظ)ADMIN نوشته: میتونید از فیلترهای سفارشی استفاده کنید ولی ترجیحاً بهتره این کار رو با RBAC انجام بدین.

قبلنا بیشتر توضیح میدادید :)
ما یه شبکه اجتماعی داریم و میخاییم کاری کنیم که هر نفر فقط بتونه اطلاعات خودش رو ببینه و ویرایش کنه (و حذف البته ) و حالا میخوام قبل هر کدوم از این کارا بررسی بشه که ایا این کامنت یا پست یا هرچی متعلق به این کاربر هست یا نه و میخوام این کار به صورت اتوماتیک انجام بشه و طوری نباشه همه جا بشینم و با یه if  برسی کنم
تنها راه منطقیی که به نظرم میرسه یه فلیتر کلیه که واسه ی کلیه ی CURD  ها استفاده بشه
به نظرم yii  واسه این مشکل هم راه حلی داره Dodgy
پاسخ
تشکر شده توسط:
#4
http://www.yiiframework.com/doc-2.0/guid....html#rbac
پاسخ
تشکر شده توسط:
#5
برای چیزی که شما نیاز دارید فکر کنم تغییر در دو تابع actionIndex و findModel در کنترل مربوطه کافی باشه. بصورت زیر:
public function actionIndex()
{
   $dataProvider = new ActiveDataProvider([
       'query' => Post::find()->where('user_id=:user_id', [
            ':user_id' => Yii::$app->user->id,
        ]),
   ]);

   return $this->render('index', [
        'dataProvider' => $dataProvider,
    ]);
}


protected function findModel($id)
{
   if (($model = Post::findOne(['id' => $id, 'user_id' => Yii::$app->user->id])) !== null) {
       return $model;
   }
   else {
       throw new NotFoundHttpException('The requested page does not exist.');
   }
}
...
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 3 مهمان