امروز:پنج شنبه ,۱۳۹۸/۰۳/۳۰
Download http://bigtheme.net/joomla Free Templates Joomla! 3
Home / Yii2 / کار با کنترلر و اکشن در yii2(قسمت دوم)
controller,action,yii2,goyii.ir

کار با کنترلر و اکشن در yii2(قسمت دوم)

بحثی که امروز آموزش میدیم
AccessControl هست که یک اکشن برای فیلتر کردن می باشد.
این اکشن وظیفه ی چک کردن دسترسی ها هنگام درخواست یک اکشن را بر اساس IP یا نقش های کاربر را بر عهده دارد.
که با دو گزینه ی allow برای اجازه دادن و deny برای عدم اجازه مدیریت می شوند.
برای تعریف AccessControl باید اونو درمتد behaviors() در کنترلر استفاده کرد.

برای مثال مثال زیر دسترسی به اکشن های create , update را برای کاربرانی که وارد سایت شده اند ( @ ) اجازه داده است ,
اما برای سایر کاربران غیر فعال کرده است .

public function behaviors()
{
    return [
        'access' => [
            'class' => \yii\filters\AccessControl::className(),
            'only' => ['create', 'update'],
            'rules' => [
                // deny all POST requests
                [
                    'allow' => false,
                    'verbs' => ['POST']
                ],
                // allow authenticated users
                [
                    'allow' => true,
                    'roles' => ['@'],
                ],
                // everything else is denied
            ],
        ],
    ];
}

با استفاده از actions می توانید مشخص کنید که نحوه ی درخواست هر اکشن به چه شکل باشد .
برای مثال

public function behaviors()
{
    return [
        'verbs' => [
            'class' => \yii\filters\VerbFilter::className(),
            'actions' => [
                'index'  => ['get'],
                'view'   => ['get'],
                'create' => ['get', 'post'],
                'update' => ['get', 'put', 'post'],
                'delete' => ['post', 'delete'],
            ],
        ],
    ];
}

با کد بالا ما مشخص کردیم که هر اکشن با چه درخواستی قابل دسترسی می باشد
مثلا اکشن index فقط با درخواست get قابل دسترسی می باشد

Check Also

DropDown for pageSize in GridView

DropDown for pageSize in GridView برای نمایش تعداد آیتمی که در Gridview  نمایش داده می …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *