输入或请求在控制器中始终为空

时间:2016-11-23 15:57:32

标签: php laravel-5.2

我需要一些关于让我在Laravel 5.2上疯狂的主题的帮助

我有以下routes.php,我已将其减少到最低限度:

use Illuminate\Http\Request;

/**
* Category Page
*/
Route::get('/category/test/', function()
    {
        dd("I'm in !");
        dd(Input::all());

        $page = Input::get('page');

        if(isset($page)){
            dd($page);
        }
    }

当我调用以下网址:http://192.168.99.100/category/test?page=55时,我希望在输入或请求中获取参数页面,但它始终为空。以下代码只显示“我在!”但没有别的。

你能帮我理解这里的错误吗?我之前使用过控制器和Request参数,但它也是空的,因此这个简单的测试。请注意,帖子请求工作正常。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以同时使用两者,实际上代码中没有错误,除非您错过了Input外观的使用声明。

use Illuminate\Http\Request;

/**
* Category Page
*/
Route::get('/category/test/', function()
    {

        dd(Input::all());
        dd("I'm in !");

        $page = Input::get('page');

        if(isset($page)){
            dd($page);
        }
    }

所以问题是为什么你什么都没得到!因为路由是GET请求所以如果你发布/更新/修补任何东西,你将获得methodNotAllowed异常。现在只需转到您的浏览器并输入http://whateverdomain/category/test/?page=atiq&have=fun,现在就有了.........

Route::get('/category/test/', function(Request $request)
    {
         $input=$request->All();
         dd($input);

        $page = request->get('page');

        if(isset($page)){
            dd($page, request->get('have'));
        }
    }  

答案 1 :(得分:1)

我终于找到了它!

这是我的nginx配置中的一个问题,它阻止了PHP变量QUERY_STRING的正确设置,Laravel正在以此变量为基础来检索数据。

有关详细信息,请参阅https://serverfault.com/questions/231578/nginx-php-fpm-where-are-my-get-params/362924#362924

无论如何都会得到你的答案!

答案 2 :(得分:0)

因为你没有告诉函数期待请求

应该是

Route::get('/category/test/', function(Request $Request)
    {
         $input=$Request->All();
         dd($input);
            // usage $input['query'];
        $page = Input::get('page');

        if(isset($page)){
            dd($page);
        }
    }