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 قابل دسترسی می باشد

Leave a Reply

Your email address will not be published. Required fields are marked *