묻다
ㅠㅠ
HTTP 요청
요청 수락
종속성 주입을 통해 현재 HTTP 요청 인스턴스를 얻으려면 컨트롤러에 IlluminateHttpRequest
클래스를 도입해야 하며, 들어오는 요청 인스턴스는 서비스 컨테이너에 의해 자동으로 주입됩니다: IlluminateHttpRequest
类, 传入的请求实例将会由 服务容器 自动注入:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller{ /** * 存储一个新用户。 * * @param Request $request * @return Response */ public function store(Request $request) { $name = $request->input('name'); // } }
依赖注入 & 路由参数
如果你的控制器需要从路由参数中获取数据,你应该在其他依赖项之后列入参数。举个例子,你的路由是这样定义的:
Route::put('user/{id}', 'UserController@update');
你可以通过下面的方法来定义控制器,使用 IlluminateHttpRequest
类来获取你的路由参数 id
:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller{ /** * 更新指定用户 * * @param Request $request * @param string $id * @return Response */ public function update(Request $request, $id) { // } }
通过闭包路由获取参数
你也可以在路由闭包中使用 IlluminateHttpRequest
类, 服务容器会自动的将请求参数注入到路由闭包中:
use Illuminate\Http\Request; Route::get('/', function (Request $request) { // });
请求路径 & 方法
IlluminateHttpRequest
实例提供了一系列方法来验证 HTTP 请求参数,并继承了 SymfonyComponentHttpFoundationRequest
$uri = $request->path();< div name=" d83a24" data-unique="d83a24">
종속성 주입 및 경로 매개변수
if ($request->is('admin/*')) { // }🎜다음 메서드를 통해 컨트롤러를 정의할 수 있습니다.
IlluminateHttpRequest
클래스를 사용하여 경로 매개변수 id
를 가져옵니다. :🎜// 不附带查询串... $url = $request->url(); // 附带查询串... $url = $request->fullUrl();
클로저 라우팅을 통해 매개변수 가져오기
🎜라우팅 클로저 클래스에서IlluminateHttpRequest
를 사용할 수도 있습니다. 서비스 컨테이너는 요청 매개변수를 라우팅 클로저에 자동으로 삽입합니다: 🎜$method = $request->method();if ($request->isMethod('post')) { // }🎜🎜🎜
요청 경로 & method
🎜IlluminateHttpRequest
인스턴스는 HTTP 요청 매개변수를 확인하는 일련의 메서드를 제공하고 SymfonyComponentHttpFoundationRequest
클래스를 상속합니다. 이 수업의 몇 가지 중요한 방법은 다음과 같습니다. 🎜🎜🎜요청 경로 가져오기
path
메서드는 요청된 경로 정보를 반환합니다. 따라서 요청된 경로가 http://domain.com/foo/bar
인 경우 path
메서드는 foo/bar
를 반환합니다.path
方法返回请求的路径信息。所以,如果请求的路径是 http://domain.com/foo/bar
, path
方法将会返回 foo/bar
:
composer require symfony/psr-http-message-bridge composer require zendframework/zend-diactoros
is
可以验证传入的请求路径是否与给定的模式匹配。 在这个方法中,你也可以使用 *
字符作为通配符:
use Psr\Http\Message\ServerRequestInterface; Route::get('/', function (ServerRequestInterface $request) { // });
获取请求 URL
可以使用 url
或 fullUrl
方法获取完整的请求 URL。 url
方法返回不含有查询串的 URL, fullUrl
获取包含查询串的 URL:
$input = $request->all();
获取请求 Method
method
方法返回请求的 HTTP 动作。还可以使用 isMethod
方法校验 HTTP 动作是否与给定的客串上匹配:
$name = $request->input('name');
PSR-7 请求
PSR-7 standard 定义了 HTTP 消息接口,包括 请求 和 响应。如果你想用 PSR-7 请求代替 Laravel 请求,需要先安装几个库。 Laravel 使用 Symfony HTTP Message Bridge 组件将典型的 Laravel 请求 和 响应 转换为 PSR-7 兼容实现:
$name = $request->input('name', 'Sally');
一旦安装了这些库,就可以通过在路由闭包或控制器方法中的请求接口类型提示来获取 PSR-7 请求:
$name = $request->input('products.0.name'); $names = $request->input('products.*.name');
{tip} 如果从路由或控制器返回 PSR-7 响应实例,框架会自动将其转换回 Laravel 响应实例并显示。
输入的裁剪和标准化
默认情况下,Laravel 在应用的全局中间件堆栈中包含了 TrimStrings
和 ConvertEmptyStringsToNull
中间件。这些中间件被放在 AppHttpKernel
类的堆栈列表中。它们自动裁剪请求中的所有输入字符串域,同时将空字符串域转换为 null
。这样一来,你就不必担心路由和控制器中的标准化规约问题。
如果想要禁用这个行为,只需要通过从 AppHttpKernel
类的 $middleware
属性中移除它(相当于从应用的中间件堆栈中移除)。
获取输入
获取所有的输入数据
可以使用 all
$input = $request->input();
is
는 들어오는 요청 경로가 지정된 패턴과 일치하는지 확인할 수 있습니다. 이 방법에서는 *
문자를 와일드카드로 사용할 수도 있습니다. $name = $request->query('name');🎜요청 URL 가져오기🎜🎜
url
또는 fullUrl
메소드를 사용하여 전체 요청 URL을 가져옵니다. url
메소드는 쿼리 문자열을 포함하지 않는 URL을 반환하고 fullUrl
은 쿼리 문자열을 포함하는 URL을 얻습니다: 🎜$name = $request->query('name', 'Helen');
method
메서드는 요청된 HTTP 작업을 반환합니다. isMethod
메서드를 사용하여 HTTP 작업이 지정된 게스트와 일치하는지 확인할 수도 있습니다. 🎜$query = $request->query();🎜🎜
PSR-7 요청
🎜PSR-7 표준은 요청 및 응답을 포함한 HTTP 메시지 인터페이스를 정의합니다. Laravel 요청 대신 PSR-7 요청을 사용하려면 먼저 몇 가지 라이브러리를 설치해야 합니다. Laravel은 Symfony HTTP 메시지 브리지 구성 요소를 사용하여 일반적인 Laravel 요청과 응답을 PSR-7 호환 구현으로 변환합니다: 🎜$name = $request->name;🎜이러한 라이브러리가 설치되면 경로 폐쇄 또는 컨트롤러 메서드에서 사용할 수 있습니다. PSR-7 요청을 얻기 위한 인터페이스 유형 팁: 🎜
$name = $request->input('user.name');
🎜{tip} PSR-7 응답 인스턴스가 경로나 컨트롤러에서 반환되면 프레임워크는 자동으로 이를 다시 Laravel 응답 인스턴스로 변환하여 표시합니다. . 🎜🎜🎜
입력 트리밍 및 정규화 / h2>🎜기본적으로 Laravel은 애플리케이션의 전역 미들웨어 스택에 TrimStrings
및 ConvertEmptyStringsToNull
미들웨어를 포함합니다. 이러한 미들웨어는 AppHttpKernel
클래스의 스택 목록에 배치됩니다. 요청의 모든 입력 문자열 필드를 자동으로 자르는 동시에 빈 문자열 필드를 null
로 변환합니다. 이렇게 하면 라우팅 및 컨트롤러의 표준화된 규칙에 대해 걱정할 필요가 없습니다. 🎜🎜이 동작을 비활성화하려면 AppHttpKernel
클래스의 $middleware
속성에서 제거하세요(애플리케이션의 미들웨어 스택에서 제거하는 것과 동일). 🎜🎜🎜🎜입력 가져오기
🎜🎜모든 입력 데이터 가져오기🎜🎜all
메서드를 사용하여 모든 입력 데이터 배열을 가져올 수 있습니다: 🎜$input = $request->only(['username', 'password']);
$input = $request->only('username', 'password');
$input = $request->except(['credit_card']);
$input = $request->except('credit_card');
🎜🎜단일 입력 값 가져오기
몇 가지 간단한 방법을 사용하면 사용자가 어떤 HTTP 작업을 요청했는지 걱정할 필요 없이 IlluminateHttpRequest
인스턴스를 통해 모든 사용자 입력을 가져올 수 있습니다. HTTP 액션과 상관없이 사용자의 요청은 input
메소드로 얻을 수 있습니다: IlluminateHttpRequest
实例获取用户的全部输入,不需要担心用户请求用的是哪种 HTTP 动作。无论哪种 HTTP 动作, 用户的请求都能被 input
方法获取:
if ($request->has('name')) {
//
}
可以将默认值作为传递给 input
方法的第二个参数。这个值将在请求没有包含该参数时被返回:
if ($request->has(['name', 'email'])) {
//
}
当与包含数组输入的表单协作时,使用 「点」 运算符访问数组元素:
if ($request->filled('name')) {
//
}
不带参数调用 input
方法,能够获取全部输入值(关联数组形式):
$request->flash();
从查询串中获取输入
input
方法从整个请求载体中获取值(包括查询串), query
方法则仅从查询串中获取值:
$request->flashOnly(['username', 'email']);$request->flashExcept('password');
如果查询串值不存在,query
方法的第二个参数将被作为该参数的默认值被返回:
return redirect('form')->withInput();
return redirect('form')->withInput(
$request->except('password')
);
不带参数调用 query
方法,能够获取查询串的所有值(关联数组形式):
$username = $request->old('username');
通过动态属性获取输入
可以通过 IlluminateHttpRequest
实例的动态属性访问用户输入。例如,如果应用表单包含 name
域,可以像下面这样访问该域的值:
<input type="text" name="username" value="{{ old('username') }}">
在使用动态属性时,Laravel 首先会在请求载体中查找参数的值。如果该值不存在,Lavarel 将在路由参数中搜索。
获取 JSON 输入
当向应用传递 JSON 请求时,可以通过 input
方法访问 JSON 数据,只要将请求的 Content-Type
头设置为 application/json
。 同样可以使用 「点」语法访问 JSON 数组:
$value = $request->cookie('name');
获取部分输入数据
如果需要获取输入数据的子集,可以使用 only
或 except
方法。它们接受单个 array
或者动态参数列表:
$value = Cookie::get('name');
{tip} only
方法返回请求中的全部键值对;但是它不返回请求中不存在的键值对。
判断输入值是否存在
has
方法用于判定请求中是否存在指定的值。如果请求中存在该值, has
方法返回 true
:
return response('Hello World')->cookie(
'name','value',$minutes
);
如果给出一个数组, has
方法将判断在请求中,指定的值是否全部存在:
return response('Hello World')->cookie(
'name', 'value', $minutes, $path, $domain, $secure, $httpOnly
);
如果想要判断一个值在请求中是否存在,并且不为空,需要使用 filled
Cookie::queue(Cookie::make('name', 'value', $minutes));
Cookie::queue('name', 'value', $minutes);
기본값을 input
메소드의 두 번째 매개변수로 전달할 수 있습니다. 요청에 다음 매개변수가 포함되지 않은 경우 이 값이 반환됩니다. $cookie = cookie('name', 'value', $minutes);
return response('Hello World')->cookie($cookie);
배열 입력이 포함된 양식으로 작업할 때 "점" 연산자를 사용하여 배열 요소에 액세스합니다. $file = $request->file('photo');
$file = $request->photo;
없이 입력
모든 입력 값을 가져오는 방법(연관 배열 형식): if ($request->hasFile('photo'))
{
//
}
🎜쿼리 문자열에서 입력 가져오기🎜🎜입력 code> 메소드 전체 요청 벡터(쿼리 문자열 포함)에서 값을 가져옵니다. query
메소드는 쿼리 문자열에서만 값을 가져옵니다. 🎜if ($request->file('photo')->isValid()) {
//
}
🎜쿼리 문자열 값이 존재하지 않는 경우 query
메소드 두 번째 매개변수는 매개변수의 기본값으로 반환됩니다: 🎜$path = $request->photo->path();
$extension = $request->photo->extension();
🎜쿼리 문자열의 모든 값을 가져오려면 매개변수 없이 query
메소드를 호출하세요. (연관 배열 형식): 🎜$path = $request->photo->store('images');
$path = $request->photo->store('images', 's3');
🎜🎜동적 속성을 통해 입력 받기🎜🎜 사용자 입력은 IlluminateHttpRequest의 동적 속성을 통해 액세스할 수 있습니다.
인스턴스. 예를 들어, 애플리케이션 양식에 name
필드가 포함된 경우 다음과 같이 해당 필드의 값에 액세스할 수 있습니다: 🎜$path = $request->photo->storeAs('images', 'filename.jpg');
$path = $request->photo->storeAs('images', 'filename.jpg', 's3');
🎜동적 속성을 사용할 때 Laravel은 먼저 요청에서 매개변수 값을 찾습니다. 몸. 값이 존재하지 않으면 Lavarel은 경로 매개변수를 검색합니다. 🎜🎜🎜JSON 입력 가져오기🎜🎜JSON 요청을 애플리케이션에 전달할 때 input
메서드를 통해 JSON 데이터에 액세스할 수 있습니다. 요청된 Content-Type
헤더가 application/json
으로 설정되어 있는 한. "점" 구문을 사용하여 JSON 배열에 액세스할 수도 있습니다. 🎜<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware{
/**
* 应用程序的可信代理列表
*
* @var array
*/
protected $proxies = [
'192.168.1.1',
'192.168.1.2',
];
/**
* 应该用来检测代理的头信息
*
* @var string
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;}
🎜🎜입력 데이터의 일부 가져오기🎜🎜입력의 하위 집합을 가져와야 하는 경우 데이터의 경우 만
또는 제외
방법을 사용할 수 있습니다. 단일 배열
또는 동적 매개변수 목록을 허용합니다. 🎜/**
* 应用程序的可信代理列表
*
* @var array
*/
protected $proxies = '*';
🎜{tip} only
메서드는 요청의 모든 키-값 쌍을 반환합니다. 요청에 키-값 쌍이 반환되지 않습니다. 🎜
🎜🎜입력값이 존재하는지 확인🎜🎜has
메소드는 지정된 값이 존재하는지 확인하는 데 사용됩니다. 요구. 요청에 값이 있으면 has
메서드는 true
를 반환합니다. 🎜rrreee🎜배열이 제공되면 has
메서드는 다음을 결정합니다. 요청에 지정된 값이 모두 존재하는지 여부: 🎜rrreee🎜 요청에 값이 존재하고 비어 있지 않은지 확인하려면 filled
메서드를 사용해야 합니다. 🎜rrreee 🎜🎜🎜🎜🎜🎜Old Data
Laravel을 사용하면 요청 간에 데이터를 유지할 수 있습니다. 이 기능은 유효성 검사 오류 후 양식을 다시 채울 때 유용합니다. 그러나 Lavarel의 내장 유효성 검사 기능을 사용하는 경우 Laravel의 내장 유효성 검사 기능 중 일부가 자동으로 호출하므로 이러한 메서드를 수동으로 호출할 필요가 없습니다.
입력 데이터를 세션으로 전송
IlluminateHttpRequest
클래스의 flash
메서드는 현재 입력을 세션으로 전송하며 사용자가 애플리케이션에 대한 이 요청은 계속 사용 가능합니다. IlluminateHttpRequest
类的 flash
方法将把当前的输入传送到 session ,在用户向应用发出这一次请求时它们仍然可用:
rrreee可以使用 flashOnly
或 flashExcept
方法将请求数据的子集传送给 session。这些方法常用于将密码之类的敏感数据排除在 session 保持之外:
rrreee传送数据并跳转
当你经常需要将输入传送至 session 并紧接着跳转至之前的页面,可以通过在跳转函数后链接调用 withInput
方法轻易地实现:
rrreee获取旧数据
要获取前一次请求传送的数据,可以使用 Request
实例的 old
方法。 old
方法将从 session 拉取之前传送的值:
rrreeeLaravel 还提供了全局的 old
助手。如果要在 Blade 模板中 显示旧数据, old
助手更易用。如果给定域的旧值不存在,它将返回 null
:
rrreeeCookies
从请求中获取 Cookies
Lavarel 框架生成的全部 cookies 都是加密的,并且已经用授权码签名,这意味着如果它们被客户端改变就会失效。使用 IlluminateHttpRequest
实例的 cookie
方法可以从请求中获取 cookie 值:
rrreee也可以使用 Cookie
facade 访问 cookie 值:
rrreee将 Cookies 附加到响应中
可以使用 cookie
方法向输出的 IlluminateHttpResponse
实例附加 cookie。需要传递 名称、值、cookie 的过期时间(以分钟为单位)给该方法:
rrreeecookie
还可以接受另外几个不太常用的参数。通常这些参数和 PHP 内置的 setcookie 方法的参数有着相同的作用和意义:
rrreee同样,你可以使用 Cookie
facade 来 「排列」 用于从应用中附加到输出响应的 cookies。queue
方法接受一个 Cookie
实例或者用于创建 Cookie
rrreee
flashOnly
또는 flashExcept
메서드를 사용하여 요청된 데이터의 하위 집합을 세션에 전달할 수 있습니다. 이러한 방법은 세션 지속성에서 비밀번호와 같은 민감한 데이터를 제외하는 데 자주 사용됩니다. rrreee🎜데이터 전송 및 점프🎜🎜입력이 자주 필요한 경우 세션 후 이전 페이지로 점프하는 것은 점프 함수 다음에 withInput
메소드를 호출하여 쉽게 달성할 수 있습니다: 🎜rrreee🎜🎜Get old data🎜🎜이전 요청에서 전송된 데이터를 가져오려면 Request
인스턴스의 old
메서드를 사용할 수 있습니다. old
메소드는 세션에서 이전에 전송된 값을 가져옵니다. 🎜rrreee🎜Laravel은 전역 old
도우미도 제공합니다. 블레이드 템플릿에 이전 데이터를 표시하려는 경우 old
도우미를 사용하는 것이 더 쉽습니다. 해당 도메인의 이전 값이 존재하지 않으면 null
이 반환됩니다. 🎜rrreee🎜🎜🎜🎜쿠키🎜🎜🎜요청에서 쿠키 가져오기🎜🎜Lavarel 프레임워크에서 생성된 모든 쿠키는 인증 코드로 암호화되고 서명됩니다. 즉, 클라이언트가 변경하면 유효하지 않게 됩니다. 요청에서 쿠키 값을 얻으려면 IlluminateHttpRequest
인스턴스의 cookie
메서드를 사용하세요. 🎜rrreee🎜 Cookie
파사드를 사용하여 액세스할 수도 있습니다. 쿠키 값: 🎜rrreee< div name="c52fe2" data-unique="c52fe2">🎜🎜응답에 쿠키 첨부🎜🎜cookie
메소드를 사용하여 출력에 쿠키를 첨부할 수 있습니다. code>IlluminateHttpResponse 인스턴스. 이름, 값 및 쿠키 만료 시간(분)을 이 메소드에 전달해야 합니다. 🎜rrreee🎜cookie
는 덜 일반적으로 사용되는 기타 여러 매개변수도 허용할 수 있습니다. 일반적으로 이러한 매개변수는 PHP 내장 setcookie 메소드의 매개변수와 동일한 역할 및 의미를 갖습니다: 🎜rrreee🎜 마찬가지로 Cookie
파사드를 사용하여 출력 응답에 첨부하기 위해 쿠키를 "정렬"할 수 있습니다. 응용 프로그램. queue
메소드는 Cookie
인스턴스 또는 Cookie
를 생성하는 데 필요한 매개변수 목록을 허용합니다. 이러한 쿠키는 브라우저로 전송되기 전에 출력 응답에 추가됩니다. 🎜rrreee🎜🎜쿠키 인스턴스 생성
응답 인스턴스에 제공할 수 있는 SymfonyComponentHttpFoundationCookie
인스턴스를 생성하려는 경우 전역 cookie
도우미를 사용할 수 있습니다. 이 쿠키는 응답 인스턴스에 연결되지 않으면 클라이언트로 다시 전달되지 않습니다: SymfonyComponentHttpFoundationCookie
实例,可以使用全局的 cookie
助手。这个 cookie 在没有附加到响应实例前不会传回客户端:
rrreee文件
获取上传的文件
可以使用 IlluminateHttpRequest
实例的 file
方法或者动态属性访问上传文件。 file
方法返回 IlluminateHttpUploadedFile
类的实例,这个类扩展自 PHP 的 SplFileInfo
类并提供用于文件交互的多个方法:
rrreee可以使用 hasFile
方法判断请求中是否存在指定文件:
rrreee验证成功上传
除了验证文件是否存在,还可以使用 isValid
方法校验上传的文件有没有问题:
rrreee文件路径 & 扩展名
UploadedFile
类还包含访问文件的全路径和扩展名的方法。 extension
方法基于文件的内容猜测匹配的文件扩展名。这个扩展名有可能和客户端提供的扩展名不同:
rrreee其它的文件方法
UploadedFile
实例还有另外几个方法可用。浏览 这个类的 API 文档 可以获取这些方法的更多信息。
存储上传文件
要存储上传的文件,先配置好 文件系统。你可以使用 UploadedFile
的 store
方法把上传文件移动到你的某个磁盘上,该文件可能是本地文件系统中的一个位置,甚至像 Amazon S3 这样的云存储位置。
store
方法接受相对于文件系统配置的存储文件根目录的路径。这个路径不能包含文件名,因为系统会自动生成唯一的 ID 作为文件名。
store
方法还接受可选的第二个参数,用于存储文件的磁盘名称。这个方法会返回相对于磁盘根目录的文件路径:
rrreee如果你不想自动生成文件名,那么可以使用 storeAs
rrreee
입력 가져오기
all
메서드를 사용하여 모든 입력 데이터 배열을 가져올 수 있습니다: 🎜$input = $request->only(['username', 'password']); $input = $request->only('username', 'password'); $input = $request->except(['credit_card']); $input = $request->except('credit_card');🎜🎜
단일 입력 값 가져오기
몇 가지 간단한 방법을 사용하면 사용자가 어떤 HTTP 작업을 요청했는지 걱정할 필요 없이 IlluminateHttpRequest
인스턴스를 통해 모든 사용자 입력을 가져올 수 있습니다. HTTP 액션과 상관없이 사용자의 요청은 input
메소드로 얻을 수 있습니다: IlluminateHttpRequest
实例获取用户的全部输入,不需要担心用户请求用的是哪种 HTTP 动作。无论哪种 HTTP 动作, 用户的请求都能被 input
方法获取:
if ($request->has('name')) { // }
可以将默认值作为传递给 input
方法的第二个参数。这个值将在请求没有包含该参数时被返回:
if ($request->has(['name', 'email'])) { // }
当与包含数组输入的表单协作时,使用 「点」 运算符访问数组元素:
if ($request->filled('name')) { // }
不带参数调用 input
方法,能够获取全部输入值(关联数组形式):
$request->flash();
从查询串中获取输入
input
方法从整个请求载体中获取值(包括查询串), query
方法则仅从查询串中获取值:
$request->flashOnly(['username', 'email']);$request->flashExcept('password');
如果查询串值不存在,query
方法的第二个参数将被作为该参数的默认值被返回:
return redirect('form')->withInput(); return redirect('form')->withInput( $request->except('password') );
不带参数调用 query
方法,能够获取查询串的所有值(关联数组形式):
$username = $request->old('username');
通过动态属性获取输入
可以通过 IlluminateHttpRequest
实例的动态属性访问用户输入。例如,如果应用表单包含 name
域,可以像下面这样访问该域的值:
<input type="text" name="username" value="{{ old('username') }}">
在使用动态属性时,Laravel 首先会在请求载体中查找参数的值。如果该值不存在,Lavarel 将在路由参数中搜索。
获取 JSON 输入
当向应用传递 JSON 请求时,可以通过 input
方法访问 JSON 数据,只要将请求的 Content-Type
头设置为 application/json
。 同样可以使用 「点」语法访问 JSON 数组:
$value = $request->cookie('name');
获取部分输入数据
如果需要获取输入数据的子集,可以使用 only
或 except
方法。它们接受单个 array
或者动态参数列表:
$value = Cookie::get('name');
{tip}
only
方法返回请求中的全部键值对;但是它不返回请求中不存在的键值对。
判断输入值是否存在
has
方法用于判定请求中是否存在指定的值。如果请求中存在该值, has
方法返回 true
:
return response('Hello World')->cookie( 'name','value',$minutes );
如果给出一个数组, has
方法将判断在请求中,指定的值是否全部存在:
return response('Hello World')->cookie( 'name', 'value', $minutes, $path, $domain, $secure, $httpOnly );
如果想要判断一个值在请求中是否存在,并且不为空,需要使用 filled
Cookie::queue(Cookie::make('name', 'value', $minutes)); Cookie::queue('name', 'value', $minutes);기본값을
input
메소드의 두 번째 매개변수로 전달할 수 있습니다. 요청에 다음 매개변수가 포함되지 않은 경우 이 값이 반환됩니다. $cookie = cookie('name', 'value', $minutes); return response('Hello World')->cookie($cookie);배열 입력이 포함된 양식으로 작업할 때 "점" 연산자를 사용하여 배열 요소에 액세스합니다.
$file = $request->file('photo'); $file = $request->photo;없이
입력
모든 입력 값을 가져오는 방법(연관 배열 형식): if ($request->hasFile('photo')) { // }🎜쿼리 문자열에서 입력 가져오기🎜🎜
입력 code> 메소드 전체 요청 벡터(쿼리 문자열 포함)에서 값을 가져옵니다. query
메소드는 쿼리 문자열에서만 값을 가져옵니다. 🎜if ($request->file('photo')->isValid()) {
//
}
🎜쿼리 문자열 값이 존재하지 않는 경우 query
메소드 두 번째 매개변수는 매개변수의 기본값으로 반환됩니다: 🎜$path = $request->photo->path();
$extension = $request->photo->extension();
🎜쿼리 문자열의 모든 값을 가져오려면 매개변수 없이 query
메소드를 호출하세요. (연관 배열 형식): 🎜$path = $request->photo->store('images');
$path = $request->photo->store('images', 's3');
🎜🎜동적 속성을 통해 입력 받기🎜🎜 사용자 입력은 IlluminateHttpRequest의 동적 속성을 통해 액세스할 수 있습니다.
인스턴스. 예를 들어, 애플리케이션 양식에 name
필드가 포함된 경우 다음과 같이 해당 필드의 값에 액세스할 수 있습니다: 🎜$path = $request->photo->storeAs('images', 'filename.jpg');
$path = $request->photo->storeAs('images', 'filename.jpg', 's3');
🎜동적 속성을 사용할 때 Laravel은 먼저 요청에서 매개변수 값을 찾습니다. 몸. 값이 존재하지 않으면 Lavarel은 경로 매개변수를 검색합니다. 🎜🎜🎜JSON 입력 가져오기🎜🎜JSON 요청을 애플리케이션에 전달할 때 input
메서드를 통해 JSON 데이터에 액세스할 수 있습니다. 요청된 Content-Type
헤더가 application/json
으로 설정되어 있는 한. "점" 구문을 사용하여 JSON 배열에 액세스할 수도 있습니다. 🎜<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;
class TrustProxies extends Middleware{
/**
* 应用程序的可信代理列表
*
* @var array
*/
protected $proxies = [
'192.168.1.1',
'192.168.1.2',
];
/**
* 应该用来检测代理的头信息
*
* @var string
*/
protected $headers = Request::HEADER_X_FORWARDED_ALL;}
🎜🎜입력 데이터의 일부 가져오기🎜🎜입력의 하위 집합을 가져와야 하는 경우 데이터의 경우 만
또는 제외
방법을 사용할 수 있습니다. 단일 배열
또는 동적 매개변수 목록을 허용합니다. 🎜/**
* 应用程序的可信代理列表
*
* @var array
*/
protected $proxies = '*';
🎜{tip} only
메서드는 요청의 모든 키-값 쌍을 반환합니다. 요청에 키-값 쌍이 반환되지 않습니다. 🎜
🎜🎜입력값이 존재하는지 확인🎜🎜has
메소드는 지정된 값이 존재하는지 확인하는 데 사용됩니다. 요구. 요청에 값이 있으면 has
메서드는 true
를 반환합니다. 🎜rrreee🎜배열이 제공되면 has
메서드는 다음을 결정합니다. 요청에 지정된 값이 모두 존재하는지 여부: 🎜rrreee🎜 요청에 값이 존재하고 비어 있지 않은지 확인하려면 filled
메서드를 사용해야 합니다. 🎜rrreee 🎜🎜🎜🎜🎜🎜Old Data
Laravel을 사용하면 요청 간에 데이터를 유지할 수 있습니다. 이 기능은 유효성 검사 오류 후 양식을 다시 채울 때 유용합니다. 그러나 Lavarel의 내장 유효성 검사 기능을 사용하는 경우 Laravel의 내장 유효성 검사 기능 중 일부가 자동으로 호출하므로 이러한 메서드를 수동으로 호출할 필요가 없습니다.
입력 데이터를 세션으로 전송
IlluminateHttpRequest
클래스의 flash
메서드는 현재 입력을 세션으로 전송하며 사용자가 애플리케이션에 대한 이 요청은 계속 사용 가능합니다. IlluminateHttpRequest
类的 flash
方法将把当前的输入传送到 session ,在用户向应用发出这一次请求时它们仍然可用:
rrreee可以使用 flashOnly
或 flashExcept
方法将请求数据的子集传送给 session。这些方法常用于将密码之类的敏感数据排除在 session 保持之外:
rrreee传送数据并跳转
当你经常需要将输入传送至 session 并紧接着跳转至之前的页面,可以通过在跳转函数后链接调用 withInput
方法轻易地实现:
rrreee获取旧数据
要获取前一次请求传送的数据,可以使用 Request
实例的 old
方法。 old
方法将从 session 拉取之前传送的值:
rrreeeLaravel 还提供了全局的 old
助手。如果要在 Blade 模板中 显示旧数据, old
助手更易用。如果给定域的旧值不存在,它将返回 null
:
rrreeeCookies
从请求中获取 Cookies
Lavarel 框架生成的全部 cookies 都是加密的,并且已经用授权码签名,这意味着如果它们被客户端改变就会失效。使用 IlluminateHttpRequest
实例的 cookie
方法可以从请求中获取 cookie 值:
rrreee也可以使用 Cookie
facade 访问 cookie 值:
rrreee将 Cookies 附加到响应中
可以使用 cookie
方法向输出的 IlluminateHttpResponse
实例附加 cookie。需要传递 名称、值、cookie 的过期时间(以分钟为单位)给该方法:
rrreeecookie
还可以接受另外几个不太常用的参数。通常这些参数和 PHP 内置的 setcookie 方法的参数有着相同的作用和意义:
rrreee同样,你可以使用 Cookie
facade 来 「排列」 用于从应用中附加到输出响应的 cookies。queue
方法接受一个 Cookie
实例或者用于创建 Cookie
rrreee
flashOnly
또는 flashExcept
메서드를 사용하여 요청된 데이터의 하위 집합을 세션에 전달할 수 있습니다. 이러한 방법은 세션 지속성에서 비밀번호와 같은 민감한 데이터를 제외하는 데 자주 사용됩니다. rrreee🎜데이터 전송 및 점프🎜🎜입력이 자주 필요한 경우 세션 후 이전 페이지로 점프하는 것은 점프 함수 다음에 withInput
메소드를 호출하여 쉽게 달성할 수 있습니다: 🎜rrreee🎜🎜Get old data🎜🎜이전 요청에서 전송된 데이터를 가져오려면 Request
인스턴스의 old
메서드를 사용할 수 있습니다. old
메소드는 세션에서 이전에 전송된 값을 가져옵니다. 🎜rrreee🎜Laravel은 전역 old
도우미도 제공합니다. 블레이드 템플릿에 이전 데이터를 표시하려는 경우 old
도우미를 사용하는 것이 더 쉽습니다. 해당 도메인의 이전 값이 존재하지 않으면 null
이 반환됩니다. 🎜rrreee🎜🎜🎜🎜쿠키🎜🎜🎜요청에서 쿠키 가져오기🎜🎜Lavarel 프레임워크에서 생성된 모든 쿠키는 인증 코드로 암호화되고 서명됩니다. 즉, 클라이언트가 변경하면 유효하지 않게 됩니다. 요청에서 쿠키 값을 얻으려면 IlluminateHttpRequest
인스턴스의 cookie
메서드를 사용하세요. 🎜rrreee🎜 Cookie
파사드를 사용하여 액세스할 수도 있습니다. 쿠키 값: 🎜rrreee< div name="c52fe2" data-unique="c52fe2">🎜🎜응답에 쿠키 첨부🎜🎜cookie
메소드를 사용하여 출력에 쿠키를 첨부할 수 있습니다. code>IlluminateHttpResponse 인스턴스. 이름, 값 및 쿠키 만료 시간(분)을 이 메소드에 전달해야 합니다. 🎜rrreee🎜cookie
는 덜 일반적으로 사용되는 기타 여러 매개변수도 허용할 수 있습니다. 일반적으로 이러한 매개변수는 PHP 내장 setcookie 메소드의 매개변수와 동일한 역할 및 의미를 갖습니다: 🎜rrreee🎜 마찬가지로 Cookie
파사드를 사용하여 출력 응답에 첨부하기 위해 쿠키를 "정렬"할 수 있습니다. 응용 프로그램. queue
메소드는 Cookie
인스턴스 또는 Cookie
를 생성하는 데 필요한 매개변수 목록을 허용합니다. 이러한 쿠키는 브라우저로 전송되기 전에 출력 응답에 추가됩니다. 🎜rrreee🎜🎜쿠키 인스턴스 생성
응답 인스턴스에 제공할 수 있는 SymfonyComponentHttpFoundationCookie
인스턴스를 생성하려는 경우 전역 cookie
도우미를 사용할 수 있습니다. 이 쿠키는 응답 인스턴스에 연결되지 않으면 클라이언트로 다시 전달되지 않습니다: SymfonyComponentHttpFoundationCookie
实例,可以使用全局的 cookie
助手。这个 cookie 在没有附加到响应实例前不会传回客户端:
rrreee文件
获取上传的文件
可以使用 IlluminateHttpRequest
实例的 file
方法或者动态属性访问上传文件。 file
方法返回 IlluminateHttpUploadedFile
类的实例,这个类扩展自 PHP 的 SplFileInfo
类并提供用于文件交互的多个方法:
rrreee可以使用 hasFile
方法判断请求中是否存在指定文件:
rrreee验证成功上传
除了验证文件是否存在,还可以使用 isValid
方法校验上传的文件有没有问题:
rrreee文件路径 & 扩展名
UploadedFile
类还包含访问文件的全路径和扩展名的方法。 extension
方法基于文件的内容猜测匹配的文件扩展名。这个扩展名有可能和客户端提供的扩展名不同:
rrreee其它的文件方法
UploadedFile
实例还有另外几个方法可用。浏览 这个类的 API 文档 可以获取这些方法的更多信息。
存储上传文件
要存储上传的文件,先配置好 文件系统。你可以使用 UploadedFile
的 store
方法把上传文件移动到你的某个磁盘上,该文件可能是本地文件系统中的一个位置,甚至像 Amazon S3 这样的云存储位置。
store
方法接受相对于文件系统配置的存储文件根目录的路径。这个路径不能包含文件名,因为系统会自动生成唯一的 ID 作为文件名。
store
方法还接受可选的第二个参数,用于存储文件的磁盘名称。这个方法会返回相对于磁盘根目录的文件路径:
rrreee如果你不想自动生成文件名,那么可以使用 storeAs
rrreee