如何按id限制yii2上的访问url视图

如何按id限制yii2上的访问url视图,yii2,Yii2,我基本上是一名PHP开发人员&学习Yii2。我正在开发一个基于帐户的登录系统的web应用程序。就像我在PHP web应用程序中所做的那样,如果另一个用户没有经过身份验证,我希望阻止他/她访问该视图。这就像有人试图从外部访问url(任何相关url): www.example.com/permintanbarang/index.php?r=user/view&id=1 查格托 www.example.com/permintanbarang/index.php?r=user/view&id=2被另一个

我基本上是一名PHP开发人员&学习Yii2。我正在开发一个基于帐户的登录系统的web应用程序。就像我在PHP web应用程序中所做的那样,如果另一个用户没有经过身份验证,我希望阻止他/她访问该视图。这就像有人试图从外部访问url(任何相关url):

www.example.com/permintanbarang/index.php?r=user/view&id=1 查格托 www.example.com/permintanbarang/index.php?r=user/view&id=2被另一个用户访问

此时,此人应重定向至登录页面或通知NotFound 404,因为此人无权直接访问基于帐户的页面


在MVC框架中实现这一点的指导是什么?

实现这一点的方法是使用过滤器进行访问控制,这是一种控制访问并避免来宾用户(未经验证)访问的简单方法

<?php
namespace yourapp\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use common\models\LoginForm;
use yii\filters\VerbFilter;

/**
 * Site controller
 */
class SiteController extends Controller
{
    /**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'actions' => ['login', 'error'],
                        'allow' => true,
                    ],
                    [
                        'actions' => ['logout', 'index'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'logout' => ['post'],
                ],
            ],
        ];
    }

如何隐藏内部id(2)以避免在url中公开XCRZXY您应该寻找漂亮的Url,干净的Url,使用此技术您可以配置Url方面(链接),但很抱歉,我不是这方面的专家this@andrimukti为什么你从我的答案中删除了accetped答案?我希望不是因为我的评论。对不起,我的手滑倒了@scaisEdge:(没问题。我已经想到了。非常感谢
   if (!Yii::$app->user->isGuest) { // if the user is authenticated (not guest)
                if ( Yii::$app->User->can('admin') ){ // if the role is admin 

                ..... 
                you app code