<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 請求 ## 請求對象 ### 依賴注入 & 路由參數 在控制器上引入`Illuminate\Http\Request`類, 傳入的請求實例將會由 [服務容器] 自動注入 ``` // 路由定義 Route::put('user/{id}', 'UserController@update'); <?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) { // } } ``` ### 通過閉包路由獲取參數 ``` use Illuminate\Http\Request; Route::get('/', function (Request $request) { // }); ``` ### 獲取請求路徑 ``` // 若請求路徑 http://domain.com/foo/bar, path 方法返回 foo/bar $uri = $request->path(); // is 可以驗證傳入的請求路徑是否與給定的模式匹配 if ($request->is('admin/*')) { // } ``` ### 獲取請求 URL ``` $url = $request->url(); // 不附帶查詢串... $url = $request->fullUrl(); // 附帶查詢串... ``` ### 獲取請求 Method ``` // method 方法返回請求的 HTTP 動作 $method = $request->method(); if ($request->isMethod('post')) { // } ``` ### PSR-7 請求 ``` // 用 PSR-7 請求代替 Laravel 請求,需要先安裝擴展庫 $ composer require symfony/psr-http-message-bridge $ composer require zendframework/zend-diactoros // 通過在路由閉包或控制器方法中的請求接口類型提示來獲取 PSR-7 請求 use Psr\Http\Message\ServerRequestInterface; Route::get('/', function (ServerRequestInterface $request) { // }); ``` >[info] 提示:如果從路由或控制器返回 PSR-7 響應實例,框架會自動將其轉換回 Laravel 響應實例并顯示。 ## 輸入的裁剪和標準化 >[success] 應用的全局中間件堆棧中包含了 TrimStrings 和 ConvertEmptyStringsToNull 中間件,用來格式化請求數據,trim()、替換空為 null。不需要可以在 App\Http\Kernel 類的 $middleware 屬性刪除。 ## 請求信息 ``` // 獲取所有的請求數據 $input = $request->all(); // input 獲取所有http方法的請求數據 $name = $request->input('name'); $name = $request->input('name', 'Sally'); // 設置默認值 $name = $request->input('products.0.name'); // 獲取數組參數 $names = $request->input('products.*.name'); // 獲取數組參數 $input = $request->input(); // 獲取所有請求數據的關聯數組 // query 從查詢串中獲取輸入數據 $name = $request->query('name'); $name = $request->query('name', 'Helen'); // 設置默認值 $query = $request->query(); // 獲取所有查詢數據的關聯數組 // 通過動態屬性獲取輸入 // 先在請求載體中查找參數的值,如果不存在,則在路由參數中搜索 $name = $request->name; // 獲取 JSON 輸入,請求的 Content-Type 頭設置為 application/json $name = $request->input('user.name'); // 獲取部分輸入數據 $input = $request->only(['username', 'password']); $input = $request->only('username', 'password'); $input = $request->except(['credit_card']); $input = $request->except('credit_card'); ``` >[info] 提示:`only`方法返回請求中的全部鍵值對;但是它不返回請求中不存在的鍵值對。 ### 判斷輸入值是否存在 ``` if ($request->has('name')) { // 判定請求中是否存在指定的值 } if ($request->has(['name', 'email'])) { // 判斷在請求中,指定的值是否全部存在 } if ($request->filled('name')) { // 判斷一個值在請求中是否存在,并且不為空 } ``` ### 將輸入數據傳送到 Session ``` // 將輸入數據傳送到 Session,等待后續操作使用 $request->flash(); $request->flashOnly(['username', 'email']); // 只保留 username、email $request->flashExcept('password'); // 排除 password ``` ### 傳送數據至 session 并跳轉 ``` return redirect('form')->withInput(); return redirect('form')->withInput( $request->except('password') ); ``` ### 獲取舊數據 ``` $username = $request->old('username'); // Blade模板顯示舊數據 <input type="text" name="username" value="{{ old('username') }}"> ``` ### Cookies ``` // 獲取 Cookies $value = $request->cookie('name'); $value = Cookie::get('name'); // Cookie facade 訪問 cookie 值 // 設置 Cookies ,名稱、值、過期時間,與`setcookie`方法的參數類似 return response('Hello World')->cookie( 'name', 'value', $minutes [, $path, $domain, $secure, $httpOnly] ); // Cookie 隊列,`queue`方法接受一個`Cookie`實例或者創建實例所需的參數 Cookie::queue(Cookie::make('name', 'value', $minutes)); Cookie::queue('name', 'value', $minutes); // 生成 Cookie 實例 $cookie = cookie('name', 'value', $minutes); return response('Hello World')->cookie($cookie); ``` ## 文件 ``` // 獲取上傳的文件 $file = $request->file('photo'); // 返回 Illuminate\Http\UploadedFile 實例 $file = $request->photo; if ($request->hasFile('photo')) { // 判斷請求中是否存在指定文件 } if ($request->file('photo')->isValid()) { // 驗證文件 } $path = $request->photo->path(); // 上傳文件的路徑 $extension = $request->photo->extension(); // 根據文件內容猜測匹配擴展名 // 存儲上傳文件 // `store`方法接受相對于文件系統配置的存儲文件根目錄的路徑。 // 這個路徑不能包含文件名,因為系統會自動生成唯一的 ID 作為文件名。 // `store`方法還接受可選的第二個參數,用于存儲文件的磁盤名稱。 $path = $request->photo->store('images'); $path = $request->photo->store('images', 's3'); // 自定義文件名稱 $path = $request->photo->storeAs('images', 'filename.jpg'); $path = $request->photo->storeAs('images', 'filename.jpg', 's3'); ``` ## 配置可信代理 如果應用程序運行在失效的 TLS / SSL 證書的負載均衡器后,你可能會注意到應用程序有時不能生成 HTTPS 鏈接。通常這是因為你的應用程序正在從端口 80 上的負載均衡器轉發流量,卻不知道是否應該生成安全鏈接。 解決這個問題需要在 Laravel 應用程序中包含`App\Http\Middleware\TrustProxies`中間件,這使得你可以快速自定義應用程序信任的負載均衡器或代理。你的可信代理應該作為這個中間件的`$proxies`屬性的數組列出。除了配置受信任的代理之外,還可以配置應該信任的代理`$header` ``` <?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; } ``` **信任所有代理** ``` protected $proxies = '*'; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看