yii如何将链接中的值数据传递到操作


How yii pass value data in link to the action

我需要从链接url获取到控制器操作的数据。从电子邮件向我的应用程序发送价值

<a href="http://myweb.com/register?r=Register/ClickVerifyEmail?xxxx=<?php echo xxxx;?>&ssss=<?php echo ssss; ?>">Click me </a>

控制器动作

public function actionClickVerifyEmail(){
    $verifycode = $_GET['xxxx'];
    $theid = $_GET['ssss'];
    //others stuff
}

结果为错误:找不到页面

有什么建议吗?或者我在代码上漏掉了什么?有人能帮我查一下吗?感谢

Yii::app()->createUrl('controller/action' , array('key1' => 'value1'));

上面的echo可以在任何需要的地方获得您想要的url

href中给出的URL错误,链接中有两个"?",因此可能会中断。

尝试遵循Yii方式链接,

<?php echo CHtml::link('Click me',array('Register/ClickVerifyEmail',
                                         'xxxx'=>'value1','ssss'=>'value2')); ?>

如果您想将应用程序中的绝对Url发送到电子邮件。你可以通过这种方式建立链接。

Yii::app()->createAbsoluteUrl('Register/ClickVerifyEmail', array('xxxx'=>'value1','ssss'=>'value2'));

如果https:

Yii::app()->createAbsoluteUrl('Register/ClickVerifyEmail', array('xxxx'=>'value1','ssss'=>'value2'), 'https');

我找到了自己的解决方案:

<a href="http://myweb.com/register?r=Register/ClickVerifyEmail?xxxx=<?php echo xxxx;?>&ssss=<?php echo ssss; ?>">Click me </a>

删除渲染url register?r=

    <a href="http://myweb.com/Register/ClickVerifyEmail?xxxx=<?php echo xxxx;?>&ssss=<?php echo ssss; ?>">Click me </a>

直接输入控制器名称和操作

URL中不需要另一个问号。您传递的路由(?r=)已经是一个变量,所以您需要做的是为您传递的下一个值使用一个与号(&

URL

<a href="http://myweb.com/register?r=Register/ClickVerifyEmail&xxxx=<?php echo xxxx;?>&ssss=<?php echo ssss; ?>">Click me </a>

控制器操作

public function actionClickVerifyEmail($xxxx, $ssss){
//So no need for $_GET['xxxx'];
//Just use $xxxx as a variable where needed
//e.g.
$a = $xxxx;