Yii url 管理员唯一 ID url
Yii url manager only ID in url
我在 YII 中有例如域:www.example.com/product-url-1234
如何在urlManager中设置规则以及如何使用controller/action/id
您正在尝试将所有请求转发到根级别的一个控制器。
我假设你所有的请求都被重定向了product/view路由
在您的配置中转到 URL 部分,
'(.*)'=>'product/view'
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'(.*)' => 'product/view',
'post/<id:\d+>/<title:.*?>' => 'post/view',
'posts/<tag:.*?>' => 'post/index',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
这意味着您正在捕获对产品控制器查看操作的所有根请求
在哪里可以使用
获得www.example.eu/product-url-1234
Yii::app()->request->requestUri
在 product/view
但这不是将所有传入请求捕获到单个控制器的好方法,更好的方法如下。
www.example.eu/product/product-url-1234
那你得改配置了
'product/<product:.*?>'=>'product/view'
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'product/<product:.*?>' => 'product/view',
'post/<id:\d+>/<title:.*?>' => 'post/view',
'posts/<tag:.*?>' => 'post/index',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
在您的视图操作中,您可以通过 $_GET['product']
获得 url
如果你想用这个urlwww.example.eu/product-url-1234
并假设 'index'
是将处理请求的 'user'
控制器的操作名称
然后创建一个规则,例如
'<id:.*?>'=>'user/index'
现在如果您要使用 Yii::app()->createUrl('user/index',array('id'=>'product-url-1234'))
然后它会给你想要的结果。
如果您访问此 Url,User/Index
将处理该请求。
我在 YII 中有例如域:www.example.com/product-url-1234
如何在urlManager中设置规则以及如何使用controller/action/id
您正在尝试将所有请求转发到根级别的一个控制器。
我假设你所有的请求都被重定向了product/view路由
在您的配置中转到 URL 部分,
'(.*)'=>'product/view'
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'(.*)' => 'product/view',
'post/<id:\d+>/<title:.*?>' => 'post/view',
'posts/<tag:.*?>' => 'post/index',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
这意味着您正在捕获对产品控制器查看操作的所有根请求
在哪里可以使用
获得www.example.eu/product-url-1234
Yii::app()->request->requestUri
在 product/view
但这不是将所有传入请求捕获到单个控制器的好方法,更好的方法如下。
www.example.eu/product/product-url-1234
那你得改配置了
'product/<product:.*?>'=>'product/view'
'urlManager' => array(
'urlFormat' => 'path',
'showScriptName' => false,
'rules' => array(
'product/<product:.*?>' => 'product/view',
'post/<id:\d+>/<title:.*?>' => 'post/view',
'posts/<tag:.*?>' => 'post/index',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
在您的视图操作中,您可以通过 $_GET['product']
如果你想用这个urlwww.example.eu/product-url-1234
并假设 'index'
是将处理请求的 'user'
控制器的操作名称
然后创建一个规则,例如
'<id:.*?>'=>'user/index'
现在如果您要使用 Yii::app()->createUrl('user/index',array('id'=>'product-url-1234'))
然后它会给你想要的结果。
如果您访问此 Url,User/Index
将处理该请求。