如何在YII2中创建这样的url?

如何在YII2中创建这样的url?,yii2,Yii2,我正在使用yii2。我遇到了与url结构相关的问题。如何更改Yii2中的URL结构我的当前URL,如下所示 http://localhost/advanced/posts/view?id=1 通过在应用程序配置中配置urlManager组件,您可以让应用程序在不修改现有应用程序代码的情况下识别任意URL格式。例如,您可以使用以下代码为post/view操作创建URL: use yii\helpers\Url; // Url::to() calls UrlManager::createUrl

我正在使用yii2。我遇到了与url结构相关的问题。如何更改Yii2中的URL结构我的当前URL,如下所示

http://localhost/advanced/posts/view?id=1 

通过在应用程序配置中配置urlManager组件,您可以让应用程序在不修改现有应用程序代码的情况下识别任意URL格式。例如,您可以使用以下代码为post/view操作创建URL:

use yii\helpers\Url;

// Url::to() calls UrlManager::createUrl() to create a URL
$url = Url::to(['post/view', 'id' => 100]);
根据urlManager配置,创建的URL可能类似于以下格式之一(或其他格式)。如果稍后请求创建的URL,它仍将被解析回原始路由和查询参数值

/index.php?r=post%2Fview&id=100
/index.php/post/100
/posts/100
配置:

'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                // ...
            ],
        ],
    ],
您可以将yii\web\UrlManager::$规则配置为一个数组,其中键是对应路由的模式和值。每个模式路由对构造一个URL规则。例如,以下规则配置声明了两个URL规则。第一条规则匹配URL post并将其映射到路由post/索引。第二条规则匹配与正则表达式post/(\d+)匹配的URL,并将其映射到route post/视图中,并定义一个名为id的查询参数

'rules' => [
    'posts' => 'post/index',
    'post/<id:\d+>' => 'post/view',
]
“规则”=>[
“发布”=>“发布/索引”,
'发布/'=>'发布/查看',
]

答案是使用官方文档给出的:

通过在应用程序配置中配置urlManager组件,您可以让应用程序识别任意URL格式,而无需修改现有的应用程序代码。例如,您可以使用以下代码为post/view操作创建URL:

use yii\helpers\Url;

// Url::to() calls UrlManager::createUrl() to create a URL
$url = Url::to(['post/view', 'id' => 100]);
根据urlManager配置,创建的URL可能类似于以下格式之一(或其他格式)。如果稍后请求创建的URL,它仍将被解析回原始路由和查询参数值

/index.php?r=post%2Fview&id=100
/index.php/post/100
/posts/100
配置:

'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                // ...
            ],
        ],
    ],
您可以将yii\web\UrlManager::$规则配置为一个数组,其中键是对应路由的模式和值。每个模式路由对构造一个URL规则。例如,以下规则配置声明了两个URL规则。第一条规则匹配URL post并将其映射到路由post/索引。第二条规则匹配与正则表达式post/(\d+)匹配的URL,并将其映射到route post/视图中,并定义一个名为id的查询参数

'rules' => [
    'posts' => 'post/index',
    'post/<id:\d+>' => 'post/view',
]
“规则”=>[
“发布”=>“发布/索引”,
'发布/'=>'发布/查看',
]
答案是通过官方文件提供给您的: