如何在YII2中创建这样的url?
我正在使用yii2。我遇到了与url结构相关的问题。如何更改Yii2中的URL结构我的当前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
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',
]
“规则”=>[
“发布”=>“发布/索引”,
'发布/'=>'发布/查看',
]
答案是通过官方文件提供给您的: