【问题标题】:Yii Parsing Urlmanager Link Back To ArrayYii 解析 Urlmanager 链接回数组
【发布时间】:2014-02-18 06:33:42
【问题描述】:

如何访问在视图中传递给控制器​​操作的参数数组? 基本上在应用 SEO 链接之前,我的视图中有规则(简化):

foreach(....){
$_GET['filter']=$value;
$link=$this->createUrl('models/showModels',$_GET);
echo CHtml::link(Yii::t('main',$value),$link);
}

但是在应用 urlManager $_GET 变量后变为空,并且这些规则设置肯定会停止工作。

我只是发现在 CLinkPager 模块中使用一些“魔术”方法可以完成,但不明白如何。

【问题讨论】:

  • 数组元素总是使用键访问。你已经完成了你的代码。通过使用 $_GET['filter'] 您正在访问 get 数组中键“filter”的值。
  • 在 createUrl 中使用 $_GET 之前是否检查过它不为空?
  • 一旦 UrlManager 规则应用“旧”网址,如 aaa.com/show?brand=BMW 变得对新的 SEO 友好:aaa.com/BMW 由于这个原因 $_GET 始终为空且“已解析” " 变量存储在其他地方。现在我试图找出它的存储位置以及如何访问它。

标签: php yii params yii-url-manager


【解决方案1】:

在 Yii 中你可以通过以下方法获取参数:

Yii::app()->request->getParam('param_name');
// for example getParam('filter')
// OR Yii::app()->request->getQuery('$_GET KEY');

为了将参数合并到 $_GET 请求:

CMap::mergeArray($_GET, array('filter' => 'value'))

为了获取所有参数:

Yii::app()->request->getQueryString();

另外,Yii 有一个强大的方法来获取Dump,我建议你使用它:

CVarDumper::dump($_GET,34567,true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多