【问题标题】:Retrieve GET params in KOHANA framework在 KOHANA 框架中检索 GET 参数
【发布时间】:2012-07-05 09:26:21
【问题描述】:

我的网址,例如 http://MYDOMAIN.com/cron/reports/test?code=f463529c1b75f4d868 。我需要检索代码 (f463529c1b75f4d868) 。我该怎么办? (我在Kohana工作) 我有这样的路线:

Route::set('cron_defaults', 'cron/<controller>(/<action>(?code=<code>))')
        ->defaults(array(
    'directory' => 'cron',
    'controller' => 'reports',
    'action' => 'test',
));

在我写的控制器报告中:

var_dump(Request::instance()->param('code'));

结果是 NULL。怎么了?

【问题讨论】:

    标签: php get routes kohana


    【解决方案1】:

    通常查询字符串应该是这样的:

    $code = $this->request->query('code');
    

    【讨论】:

    • 我试过了,错误是“调用未定义的方法 Request::query()”
    • 你用的是什么版本?你也可以试试:Request::current->query('code')
    • 我没有找到 Kohana 的版本,但我打开了类 Request 并且没有名为“查询”的方法。估计是旧版但我无法更新框架,因为我认为旧功能将停止工作。知道我必须做什么吗?
    • 检查Kohana::VERSION 常量。自 3.1 版本以来添加了 query。您应该删除 ?code=&lt;code&gt; 部分并使用 Arr::get('code', $_GET) 调用检索查询参数。`
    【解决方案2】:

    为什么不直接使用$_GET['code'] 呢?问号是一个获取请求,您不需要 Kohana。

    【讨论】:

    • $_GET['code'] 返回 NULL。我的应用程序是由 Kohana 编写的,现在我只做一些更新。
    • 尝试从你的路由中移除 (?code=))-stuff 并且你应该得到参数。我以这种方式使用一些模块。如果有很多参数,我会发现这种方式更容易。可能您必须改用 $_REQUEST。
    【解决方案3】:

    解决这个问题最简单的方法是全局数组 $_SERVER!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多