0

假设我有以下观点:

http://localhost/site/www/index.php/products/view/1

然后

Yii::app()->request->getUrl() ==> /site/www/index.php/products/view/1 
Yii::app()->getController()->id ==> products
Yii::app()->getController()->getAction()->id; ==> view 

如何访问“/1”部分?

4

2 回答 2

2

有两种方法可以获取 id 值。假设您为 Url 定义了以下规则:

'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

然后你可以在php中使用GET方法获取ID的值:

$id = $_GET['id'];

或者您可以在控制器中为该方法定义一个参数,该参数将自动成为您需要的 id:

public function viewAction($id) {
    //here $id is equal to $_GET['id']
}

请注意,这些参数的名称必须与我们期望的 $_GET 名称完全相同

于 2012-11-01T09:20:48.807 回答
1

您可以使用以下方法将其作为$_GET变量访问:

$_GET['id']

你怎么问?由于 Yii 默认配置(protected/config/main.php)中设置的规则

'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

该规则指定了一个{controller}/{action}/{a value, named id}。您可以根据需要自定义这些规则,请在此处阅读更多信息:

于 2012-11-01T09:12:51.400 回答