【发布时间】:2017-08-24 11:40:50
【问题描述】:
在(真实的)日子里,我们曾经使用$_GET、$_POST!现在我们得到了 Laravel 的 \Request::input()。因此,这就是发生的事情:
if(\Request::isMethod('post'))
{
$POST = \Request::input();
}
如果我在 $_GET 中有一个变量,那么值也会在 POST 中获取。
例如:
&x=1 //即在查询字符串中
$_POST['x'] = null; //因为它没有与表单一起发布,但它可能是因为有一个同名的字段
$POST['x'] = 1; //在 GET 中,但应该为 null,因为它不在 $_POST 中!
任何解决方案只获得 POSTed vars?还是我应该只使用 $_POST?
谢谢
【问题讨论】:
-
感谢@ToothlessRebel 的帮助。现在我使用
\Request::instance()->request而不是\Request::input() -
其实是
\Request::instance()->request->all()得到数组 -
毕竟是 php,所以如果不想调用那些奇怪的函数,你可以随时使用 $_POST :D
-
这很有趣,如果你查看
Illuminate\Http\Request类,你可以看到getInputSource()方法完全相同,但它的protected。最重要的是,它被拉入公共方法input()以获取输入作为get 和post 的数组($input =$this->getInputSource()->all() + $this->query->all())。
标签: php post laravel-5.3