没有传递参数

时间:2013-11-01 17:32:41

标签: php slim

我有一个基于API的应用程序。我一直在我的本地计算机上测试,事情一直很好。

我推送到服务器,我注意到我无法检索通过get请求传递的参数

在调试时,我观察了以下内容

  1. 发布请求工作正常

  2. 尝试使用$_GET['param']失败,因为我收到未定义的索引错误。

  3. 要获得苗条的参数值,我写

    $app->request()->get('param');
    
    URL request :    {api}/hospital/get_locations?hospital_id=1
    var_dump($_GET): array(1) { ["/hospital/get_locations"]=> string(0) "" } 
    

    关于为什么会发生这种情况的任何指示?

    .htaccess文件的内容

    RewriteEngine On  
    RewriteCond %{REQUEST_FILENAME} -s [OR]  
    RewriteCond %{REQUEST_FILENAME} -l [OR]  
    RewriteCond %{REQUEST_FILENAME} -d  
    RewriteRule ^.*$ - [NC,L]  
    RewriteRule ^.*$ index.php [NC,L]
    

1 个答案:

答案 0 :(得分:0)

修改

可能有办法使用get获取$_SERVER['REQUEST_URI']请求参数。我对我的localhost进行了快速测试,并提出了以下建议。尝试一下,可能适合你。

<强> PHP

<?php

// Function
function getParams() {
    $params = array();
    $urlParts = parse_url($_SERVER['REQUEST_URI']);
    if (isset($urlParts['query'])) {
        $query = $urlParts['query'];
        if (-1 !== strpos($query, '&')) {
            $query = explode('&', $query);
        } else {
            $query = array($query);
        }
        foreach ($query as $queryStr) {
            list($key, $val) = explode('=', $queryStr);
            $params[$key] = $val;
        }
    }
    return $params;
}

// Usage
$params = getParams();

// Debug
echo "<pre>";
print_r($params);
echo "</pre>";

?>

<强>输出

Array
(
    [hospital_id] => 1
)

.htaccess (与您的相似)

<IfModule mod_rewrite.c>

    Options +FollowSymLinks
    RewriteEngine on

    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    RewriteRule .* index.php [L]

</IfModule>