我有一个基于API的应用程序。我一直在我的本地计算机上测试,事情一直很好。
我推送到服务器,我注意到我无法检索通过get请求传递的参数
在调试时,我观察了以下内容
发布请求工作正常
尝试使用$_GET['param']
失败,因为我收到未定义的索引错误。
要获得苗条的参数值,我写
$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]
答案 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>