我需要从链接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;