Laravel에서 request['name']과 request->get('name') 사이에는 어떤 관계가 있나요?
曾经蜡笔没有小新2017-05-16 16:53:16
상관없습니다...어쨌든 공통점이 하나 있습니다. 모두 매개변수 값을 사용할 수 있다는 것입니다.
차이:
get()
은 Symfony Request로 구현됩니다. $request
의 속성, 쿼리, 요청에서 값을 가져올 수 있으며 기본값을 지정할 수 있습니다. 원래 의도는 주로 타사 프레임워크에서 값을 얻거나 다시 작성하는 데 사용되는 것입니다. 일반적으로 쿼리의 값을 얻습니다. 이는 기본적으로 isset($_REQUEST['name']) ? $_REQUEST['name'] : $default
와 동일합니다.get()
是 Symfony Request 实现的,可以获取到 $request
的 attributes, query, request 里的值,并可以指定一个默认值。本意主要是提供给第三方框架取值或重写使用的。一般情况都是取到了 query 里的值,基本等同与 isset($_REQUEST['name']) ? $_REQUEST['name'] : $default
.
数组方式取值是 Laravel 提供的获取 query 参数值的方法,对 $request->all()
进行 data_get()
,支持 name 里的“点”分割获取数组的值,比如 $request['foo.bar']
, 性能上比直接 get()
当然差一丢丢,但是很 "Laravel way".
get()
方法在 Laravel 中对应的方法是 input()
和 file()
.
除了数组方式,Laravel 还提供了很多便捷方法操作参数值,比如 exists
has
all
only
except
intersect
等等..
在 Laravel 中,对 $request
直接属性访问也可以取参数值,比如 $request->name
$request->all()
에서 data_get()
을 수행하고 이름에 ""를 지원합니다. "를 클릭하여 $request['foo.bar']
와 같은 배열 값을 가져오려면 분할하세요. 성능은 확실히 직접 get()
보다 약간 나쁩니다. , 하지만 이는 매우 "Laravel" 방식입니다.🎜🎜
🎜🎜Laravel의 get()
메서드에 해당하는 메서드는 input()
및 file()
입니다.🎜🎜
🎜🎜배열 메소드 외에도 Laravel은 exists
has
all
only<와 같이 매개변수 값을 조작하는 편리한 메소드를 많이 제공합니다. /code> 제외
교차
등..🎜🎜
🎜🎜Laravel에서 $request
에 대한 직접 속성 액세스는 $request->name
과 같은 매개변수 값을 사용할 수도 있지만, 이름 매개변수인지 여부가 명확하지 않은 경우 존재 여부 이 방법은 권장되지 않습니다🎜🎜
🎜회신하다0