묻다


ㅠㅠ
종속성 주입 및 라우팅 매개변수

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/barpath 方法将会返回 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

可以使用 urlfullUrl 方法获取完整的请求 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 在应用的全局中间件堆栈中包含了 TrimStringsConvertEmptyStringsToNull 中间件。这些中间件被放在 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');
🎜 🎜Get 요청 메서드🎜🎜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 응답 인스턴스로 변환하여 표시합니다. . 🎜
🎜🎜
🎜

입력 트리밍 및 정규화🎜기본적으로 Laravel은 애플리케이션의 전역 미들웨어 스택에 TrimStringsConvertEmptyStringsToNull 미들웨어를 포함합니다. 이러한 미들웨어는 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');

获取部分输入数据

如果需要获取输入数据的子集,可以使用 onlyexcept 方法。它们接受单个 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')) 
  { 
   //
 }
🎜쿼리 문자열에서 입력 가져오기🎜🎜입력 메소드 전체 요청 벡터(쿼리 문자열 포함)에서 값을 가져옵니다. 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

可以使用 flashOnlyflashExcept 方法将请求数据的子集传送给 session。这些方法常用于将密码之类的敏感数据排除在 session 保持之外:

rrreee

传送数据并跳转

当你经常需要将输入传送至 session 并紧接着跳转至之前的页面,可以通过在跳转函数后链接调用  withInput 方法轻易地实现:

rrreee

获取旧数据

要获取前一次请求传送的数据,可以使用 Request 实例的 old 方法。 old 方法将从 session 拉取之前传送的值:

rrreee

Laravel 还提供了全局的 old 助手。如果要在 Blade 模板中 显示旧数据, old 助手更易用。如果给定域的旧值不存在,它将返回 null

rrreee

Cookies

从请求中获取 Cookies

Lavarel 框架生成的全部 cookies 都是加密的,并且已经用授权码签名,这意味着如果它们被客户端改变就会失效。使用 IlluminateHttpRequest 实例的 cookie 方法可以从请求中获取 cookie 值:

rrreee

也可以使用  Cookie facade 访问 cookie 值:

rrreee

将 Cookies 附加到响应中

可以使用 cookie 方法向输出的 IlluminateHttpResponse 实例附加 cookie。需要传递 名称、值、cookie 的过期时间(以分钟为单位)给该方法:

rrreee

cookie 还可以接受另外几个不太常用的参数。通常这些参数和 PHP 内置的 setcookie 方法的参数有着相同的作用和意义:

rrreee

同样,你可以使用 Cookie facade 来 「排列」 用于从应用中附加到输出响应的 cookies。queue 方法接受一个 Cookie 实例或者用于创建 Cookierrreee

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 文档 可以获取这些方法的更多信息。

存储上传文件

要存储上传的文件,先配置好 文件系统。你可以使用 UploadedFilestore 方法把上传文件移动到你的某个磁盘上,该文件可能是本地文件系统中的一个位置,甚至像 Amazon S3 这样的云存储位置。

store 方法接受相对于文件系统配置的存储文件根目录的路径。这个路径不能包含文件名,因为系统会自动生成唯一的 ID 作为文件名。

store 方法还接受可选的第二个参数,用于存储文件的磁盘名称。这个方法会返回相对于磁盘根目录的文件路径:

rrreee

如果你不想自动生成文件名,那么可以使用 storeAsrrreee

파일< /h2>

🎜

업로드된 파일 가져오기

🎜를 사용할 수 있습니다. IlluminateHttpRequest 인스턴스의 file 메서드 또는 동적 속성은 업로드된 파일에 액세스합니다. file 메서드는 PHP의 SplFileInfo 클래스를 확장하고 파일 상호 작용을 위한 여러 메서드를 제공하는 IlluminateHttpUploadedFile 클래스의 인스턴스를 반환합니다. 🎜rrreee 🎜다음을 수행할 수 있습니다. hasFile 메소드를 사용하여 요청에 지정된 파일이 존재하는지 확인하세요. 🎜rrreee
🎜🎜성공적인 업로드를 확인하세요🎜🎜확인 외에도 파일이 존재하는지 여부, isValid 메소드를 사용하여 업로드된 파일에 문제가 있는지 확인할 수도 있습니다: 🎜rrreee
🎜🎜 파일 경로 및 확장자 🎜🎜 UploadedFile 클래스에는 파일의 전체 경로와 확장자에 액세스하는 메서드도 포함되어 있습니다. extension 메소드는 파일 내용을 기반으로 일치하는 파일 확장자를 추측합니다. 이 확장자는 클라이언트가 제공한 확장자와 다를 수 있습니다. 🎜rrreee
🎜🎜기타 파일 방법🎜🎜UploadedFile 예는 기타 여러 가지도 있습니다. 방법을 사용할 수 있습니다. 이러한 메서드에 대한 자세한 내용은 이 클래스에 대한 API 문서를 찾아보세요. 🎜🎜🎜🎜
🎜

업로드된 파일 저장

🎜업로드된 파일을 저장하려면 먼저 구성 파일 시스템. UploadedFilestore 메서드를 사용하여 업로드된 파일을 디스크 중 하나로 이동할 수 있습니다. 디스크는 로컬 파일 시스템의 위치일 수도 있고 Amazon S3와 같은 위치일 수도 있습니다. 클라우드 저장 위치. 🎜🎜store 메서드는 파일 시스템에 구성된 저장된 파일의 루트 디렉터리에 대한 상대 경로를 허용합니다. 시스템이 자동으로 고유 ID를 파일 이름으로 생성하므로 이 경로에는 파일 이름이 포함될 수 없습니다. 🎜🎜 store 메소드는 선택적 두 번째 매개변수인 파일이 저장된 디스크 이름도 허용합니다. 이 메소드는 디스크 루트를 기준으로 파일 경로를 반환합니다. 🎜rrreee🎜 파일 이름을 자동으로 생성하지 않으려면 경로를 허용하는 storeAs 메소드를 사용할 수 있습니다. 파일 이름 및 디스크 이름을 매개변수로 사용: 🎜 rrreee🎜🎜🎜🎜🎜🎜

신뢰할 수 있는 프록시 구성

애플리케이션이 만료된 TLS/SSL 인증서가 있는 로드 밸런서 뒤에서 실행 중인 경우 애플리케이션이 때때로 HTTPS 링크를 생성하지 못하는 것을 볼 수 있습니다. 일반적으로 이는 애플리케이션이 보안 링크를 생성해야 하는지 여부를 알지 못한 채 포트 80의 로드 밸런서에서 트래픽을 전달하기 때문입니다.

이 문제를 해결하려면 Laravel 애플리케이션에 AppHttpMiddlewareTrustProxies 미들웨어를 포함해야 합니다. 이를 통해 애플리케이션이 신뢰하는 로드 밸런서 또는 프록시를 빠르게 사용자 정의할 수 있습니다. 신뢰할 수 있는 프록시는 이 미들웨어의 $proxies 속성에 배열로 나열되어야 합니다. 신뢰할 수 있는 프록시를 구성하는 것 외에도 $header를 신뢰할 수 있는 프록시도 구성할 수 있습니다.AppHttpMiddlewareTrustProxies 中间件,这使得你可以快速自定义应用程序信任的负载均衡器或代理。你的可信代理应该作为这个中间件的 $proxies 属性的数组列出。除了配置受信任的代理之外,还可以配置应该信任的代理 $header:

rrreee

{tip} 如果你使用 AWS 弹性负载平衡,你的 $header 值应该是 Request::HEADER_X_FORWARDED_AWS_ELB。常量的更多信息,可用于 $headers 属性,看看 Symfony 的 文档 信任代理.

信任所有代理

如果你使用 Amazon AWS 或其他的「云」负载均衡器提供程序,你可能不知道负载均衡器的实际 IP 地址。在这种情况下,你可以使用 *rrreee

{tip} AWS Elastic Load Balancing을 사용하는 경우 $header < /code> 값은 요청::HEADER_X_FORWARDED_AWS_ELB여야 합니다. $headers 속성에 사용할 수 있는 상수에 대한 자세한 내용은 Symfony의 Document Trust Agent를 참조하세요.

모든 프록시 신뢰

Amazon AWS 또는 다른 "클라우드" 로드 밸런서 공급자를 사용하는 경우 로드 밸런서의 실제 IP 주소를 알지 못할 수 있습니다. 이 경우 *를 사용하여 모든 프록시를 신뢰할 수 있습니다.
rrreee
이 기사는 🎜LearnKu.com🎜 웹사이트에 처음 게재되었습니다. 🎜🎜