无法使用 laravel 检索 GET 参数
Posted
技术标签:
【中文标题】无法使用 laravel 检索 GET 参数【英文标题】:Unable to retrieve GET parameters using laravel 【发布时间】: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');
.
这是这个问题的副本吗? ***.com/questions/31923484/… 非常一致
【参考方案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]
【讨论】:
以上是关于无法使用 laravel 检索 GET 参数的主要内容,如果未能解决你的问题,请参考以下文章
当 URL 不是根时,无法使用 Laravel 获取 URL 上的 GET 参数
为啥这个 Angular 脚本无法检索 Laravel 4 生成的 JSON?
Laravel 5.7 - 如何使用 axios.get 从 API 检索数据?