1

私はスリムで書かれた API ベースのアプリケーションを持っています。私は自分のローカル コンピューターでテストを行っており、問題なく動作しています。

サーバーにプッシュしましたが、get リクエストで渡されたパラメーターを取得できないことに気付きました

デバッグ中に、次のことを観察しました

  1. 投稿リクエストは正常に機能しています

  2. $_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]
4

1 に答える 1

0

編集

getを使用してリクエスト パラメータを取得する方法があるかもしれません$_SERVER['REQUEST_URI']。ローカルホストで簡単なテストを行ったところ、次のようになりました。試してみてください、あなたのために働くかもしれません。

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>
于 2013-11-01T19:15:16.070 に答える