我从URL获取GET参数时遇到问题。
如果我有例如
http://domain.tld/route?page=2
而且在控制器中我从GET获取数据
dd(Input::all());
Laravel回归
array:1 [▼
"//route?page" => "2"
]
但应该是
array:1 [▼
"page" => "2"
]
Laravel 5.1 5.0上存在问题,一切正常。
路线代码
Route::get('/klub', ['as' => 'teamInfo', 'uses' => 'Game\Team\TeamController@index']);
控制器代码
final public function index(Request $request)
{
$userTeam = UserCache::get('team');
if ($userTeam->id > 0)
return view('game.team.info')->with(['userTeam' => $userTeam]);
else {
//this is executing in my case
$proposals = Teams::proposals()->paginate(1);
return view('game.team.empty', ['teamLimits' => conf('team.php'), 'userTeam' => $userTeam, 'proposals' => $proposals]);
}
}
var_dump($_SERVER['QUERY_STRING']);
string(13) "//klub?page=2"
var_dump($_SERVER['REQUEST_URI']);
string(12) "/klub?page=2"
答案 0 :(得分:2)
在您使用的任何服务器(NGINX或Apache?)中,某些内容已损坏。服务器变量从服务器引擎传递给PHP,PHP只能解析它给出的内容。
如果您使用Apache或NGINX可能会错误地转发值,则.htaccess
中的网址重写可能不正确。 QUERY_STRING
应为page=2
。
答案 1 :(得分:0)
@dboskovic问题是nginx配置,错误的变量传递给cgi,我现在修复它,一切都很好。
非常感谢您的帮助和