0
我有一个关于从Request对象获取参数的问题。访问请求中的参数
是什么
$name = $request->name;
OR
$name = $request->input("name")
之间的差异;
它们显示相同的行为。我要问,从打字的角度来看,利用#1方法会更快。但我不知道区别。 #1倾向于SQL注入?
我有一个关于从Request对象获取参数的问题。访问请求中的参数
是什么
$name = $request->name;
OR
$name = $request->input("name")
之间的差异;
它们显示相同的行为。我要问,从打字的角度来看,利用#1方法会更快。但我不知道区别。 #1倾向于SQL注入?
基本上,第一种情况只是第二种语法糖。在Laravel中,Request实现__get魔术函数来访问其内部属性。
public function all()
{
return array_replace_recursive($this->input(), $this->allFiles());
}
public function __get($key)
{
$all = $this->all();
if (array_key_exists($key, $all)) {
return $all[$key];
} else {
return $this->route($key);
}
}
在第一种情况下,如果上传了任何文件,Laravel将首先查找其中的一个属性。如果在文件或输入中没有这样的参数,那么在您的第一个片段中,Laravel还会查找路由参数中的值:
要保护您的代码免受SQL注入攻击,必须使用预准备语句/查询生成器/ ORM。你不应该逃避/改变输入,所以这两个函数都不能保护你免受SQL注入。