【问题标题】:Can't retrieve url GET parameters with Laravel 5.1on remote server无法在远程服务器上使用 Laravel 5.1 检索 url GET 参数
【发布时间】:2015-11-16 05:16:26
【问题描述】:

由于某种原因,我无法使用 Illuminate\Http\Request 外观从控制器中的 url 获取任何 GET 参数。我在多个控制器中测试过,但没有成功。

使用以下代码,访问domain.com/admin/dashboard?test=test时远程服务器上没有返回任何内容,但在我的本地机器上它返回test

The dashboard function is called by the route /admin/dashboard

/**
 * Dashboard page
 *
 * @return  view
 */
public function dashboard(Request $request)
{
    echo '<pre>';
    var_dump($request->all());
    echo '</pre>';

    // Return here
    return;

    // ...instead of here
    return view('backend::pages.dashboard');
}

我正在使用 Nginx 和 php5-fpm 在 Ubuntu 14.04 LTS 上运行 Laravel 5.1。该代码在我本地的 Homestead 实例以及 MAMP 上运行良好。我检查了我的 Nginx 配置,一切似乎都很好。我在我的服务器上托管多个站点,并且可以在所有其他站点上获取路由参数。

【问题讨论】:

  • 面临同样的问题。你有什么合适的解决办法吗?

标签: php laravel nginx


【解决方案1】:

如果有人遇到这个问题,问题在于我如何为这个特定域设置 Nginx。

我的/etc/nginx/sites-enabled/default 文件中的这个块不适用于查询字符串:

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

将其更改为以下内容后,一切正常:

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

希望对某人有所帮助。

【讨论】:

  • 非常感谢,这对我有帮助
  • 我需要准确的位置,拜托。我也有同样的问题
  • @srinivas 的位置是什么?
  • 5 年过去了,您的帖子仍然有很大帮助
【解决方案2】:

尝试像这样访问它:

$var = Input::get('test');

操作方法如下:Retrieving GET and POST data inside controller in Laravel 4 还有这里:What's the best practice accessing $_GET values in Laravel?

希望有帮助

【讨论】:

  • 我以前试过这个,但它也不起作用,因为 Input::get 只是映射到 Request::get
  • 嗯,Input::all() 的输出是什么?
  • 另外,试试这个:$segment = Request::segment(3);
  • 和我的控制器中的 $request->all() 一样
  • 我不需要来自 url 的片段。
猜你喜欢
  • 2015-11-02
  • 2017-08-01
  • 2015-11-29
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多