【问题标题】:Unable to retrieve GET parameters using laravel无法使用 laravel 检索 GET 参数
【发布时间】:2015-11-02 17:56:07
【问题描述】:

我正在开发一个 Laravel 项目,并试图从控制器获取 GET 参数。使用?date={value} 请求页面应返回value,如下所示:

public function getIndex(Request $request) {
    return $request->input("date");
}

但这不起作用。 POST 请求可以正常工作。我正在通过 cloudflare 使用 nginx。我尝试使用

制作一个普通的PHP文件
echo $_GET["date"];

效果很好。

【问题讨论】:

  • 明确一点,你想要的这个参数是作为查询字符串传递的?
  • @Victor 是的,没错
  • 你用的是什么版本的 laravel? 4.2、5.0 还是 5.1?您调用该方法的路线是什么样的?看看this response对你有没有帮助。
  • @Victor 我使用的是 5.0 版。 Input::get("date") 也不起作用。在 routes.php 我有 Route::controller('page', 'PageController');.
  • 这是这个问题的副本吗? stackoverflow.com/questions/31923484/… 非常一致

标签: php laravel


【解决方案1】:

我发现了我的问题。在站点(/etc/nginx/sites-available/default)的 nginx 配置中,我有

location / {
    try_files $uri $uri/ /index.php?;
}

应该是

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

已修复,重新启动,现在可以使用了。

【讨论】:

    【解决方案2】:

    也许 getIndex() 和 Request $request 不适用于 Route::controller。使用get('/my-route'),更灵活。

    【讨论】:

    • 另一个页面使用了显式的Route::get('page', 'PageController@getIndex');,但 GET 请求在那里也不起作用。
    • 您使用相同的参数创建了另一个公共函数,有效吗? (更改函数名并测试)
    【解决方案3】:

    url 中删除index.php 后,我的问题出在.htaccess 文件中,只需在.htaccess 文件中添加这个简单的代码即可:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多