在Yii2高级应用程序中,我试图允许用户访问登录页面和仅限页面。
所以我在/common/config/web.php配置文件中放入以下规则
'as beforeRequest' => [ //if guest user access site so, redirect to login page.
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'actions' => ['login', 'error', 'request-password-reset', 'about'],
'allow' => true,
],
[
'allow' => true,
'roles' => ['@'],
],
],
],
登录,错误和请求密码重置它工作正常但不是关于页面。
我也试过'/ page / about'和'page / about',但我没有运气。
任何想法如何解决或解决此问题。
由于
答案 0 :(得分:0)
它应该是'查看'而不是'关于'
对不起,我发现答案规则很好,但我使用的是页面组件,而PageController则是从以下控制器中的admin(数据库)获取视图
class PageController extends Controller{
public function actionView($slug)
{
$model = Page::find()->where(['slug'=>$slug, 'status'=>Page::STATUS_PUBLISHED])->one();
if (!$model) {
throw new NotFoundHttpException(Yii::t('frontend', 'Page not found'));
}
$viewFile = $model->view ?: 'view';
return $this->render($viewFile, ['model'=>$model]);
}}
所以在规则中我需要使用' view'对于PageController
呈现的所有视图答案 1 :(得分:0)
试试这段代码
'as beforeRequest' => [ //if guest user access site so, redirect to login page.
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'actions' => ['login', 'error', 'request-password-reset', 'about'],
'roles' => ['@']
'allow' => true,
],
[
'allow' => true,
'roles' => ['?'],
],
],
],
我希望它对你有用