<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 升級指南 - [從 5.4 升級至 5.5.0](#upgrade-5.5.0) <a name="upgrade-5.5.0"></a> ## 從 5.4 升級到 5.5.0 #### 預計升級耗時:1小時 > {note}我們盡量記錄每一個可能的破壞性變化。但因為其中一些不兼容變更只存在于框架很不起眼的地方,事實上只有一小部分可能會影響到你的應用程序。 ### 更新依賴 在 `composer.json` 文件中將 `laravel/framework` 更新為 `5.5.*` 。 此外,你還應該將 `phpunit/phpunit` 依賴關系更新到 `~6.0`。 > {tip} 如果你是通過使用 `laravel new` 來安裝 Laravel 程序,則應該使用命令 `composer global update` 來更新 Laravel 安裝程序包。 #### Laravel Dusk Laravel Dusk `2.0.0` 已經發布,該版本同時兼容 Laravel 5.5 和 Chrome 的 headless 模式測試。 #### Pusher Pusher 事件廣播驅動現在需要 `~3.0` 版本的 Pusher SDK。 ### Artisan #### `fire` 方法 該方法已重命名為 `handle` 方法。 #### `optimize` 命令 隨著對 PHP 操作碼緩存的最新改進,不再需要優化 Artisan 命令。你應該從部署腳本中刪除對此命令的任何引用,因為它在未來的 Laravel 版本中會被刪除。 ### 用戶授權 #### `authorizeResouce` 控制器方法 當將一個大駝峰命名的模型名稱傳遞給 `authorizeResource` 方法時,為了和資源控制器的行為相匹配,生成的路由會用蛇形命名法來命名。 #### `before` 策略方法 如果類中不包含與給定名稱相匹配的方法,則不會調用策略類的 `before` 方法。 ### 緩存 #### 數據庫驅動 如果你正在使用數據庫緩存驅動,那在你第一次部署升級至 Laravel 5.5時,應該先運行 `php artisan cache:clear` 命令。 ### Eloquent #### `belongsToMany` 方法 如果你在 Eloquent 模型中重寫了 `belongsToMany` 方法,應該更新方法簽名來映射新增的參數: /** * 定義多對多關系。 * * @param string $related * @param string $table * @param string $foreignPivotKey * @param string $relatedPivotKey * @param string $parentKey * @param string $relatedKey * @param string $relation * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null,$parentKey = null, $relatedKey = null, $relation = null) { // } #### 模型的 `is` 方法 如果你重寫了 Eloquent 模型的 `is` 方法 ,則應該從該方法中刪除 `Model` 的類型提示。這將允許 `is` 方法接受 `null` 作為參數。 /** * 確定兩個模型是否具有相同的ID并且屬于同一個表。 * * @param \Illuminate\Database\Eloquent\Model|null $model * @return bool */ public function is($model) { // } #### 模型 `$events` 屬性 模型上的 `$events` 屬性應該重命名為 `$dispatchesEvents`。由于大量用戶需要定義事件關系,導致與舊屬性名稱的沖突,因此進行了更改。 #### 中間表 `$parent` 屬性 `Illuminate\Database\Eloquent\Relations\Pivot` 類中受保護的 `$parent` 屬性已被重命名為 `$pivotParent` 。 #### 關聯 `create` 方法 `BelongsToMany`、`HasOneOrMany` 以及 `MorphOneOrMany` 類中的 `create` 方法已被修改為 `$attributes` 參數提供默認值。如果你重寫了這些方法,你應該更新你的簽名來匹配新的定義。 public function create(array $attributes = []) { // } #### 軟刪除模型 刪除 「軟刪除」 模型時,模型上的 `exists` 屬性將保持為 `true` 。 #### `withCount` 列格式化 當使用別名時,`withCount` 方法將不再自動將 `_count` 附加到生成的列名稱上。例如,在 Laravel 5.4 中,以下查詢會將 `bar_count` 列添加到查詢中: $users = User::withCount('foo as bar')->get(); 但是在 Laravel 5.5 中,別名將嚴格按照給定的方式使用。如果要將 `_count` 追加到結果列,則必須在定義別名時指定該后綴: $users = User::withCount('foo as bar_count')->get(); ### 異常格式 在 Laravel 5.5 中,所有的異常(包括驗證異常)都被異常處理程序轉換成 HTTP 響應。另外,驗證錯誤默認返回的 JSON 格式已經更改。新格式遵循以下規則: { "message": "The given data was invalid.", "errors": { "field-1": [ "Error 1", "Error 2" ], "field-2": [ "Error 1", "Error 2" ], } } 但是,如果你想沿用 Laravel 5.4 錯誤提示的 JSON 格式,則可以將以下方法添加到 `App\Exceptions\Handler` 類中: use Illuminate\Validation\ValidationException; /** * 將驗證異常轉換成 JSON 響應 * * @param \Illuminate\Http\Request $request * @param \Illuminate\Validation\ValidationException $exception * @return \Illuminate\Http\JsonResponse */ protected function invalidJson($request, ValidationException $exception) { return response()->json($exception->errors(), $exception->status); } #### JSON 身份驗證嘗試 此更改也會影響通過 JSON 進行的身份驗證嘗試的驗證錯誤返回的格式。在 Laravel 5.5 中,身份驗證失敗的 JSON 將按照上述新的格式約定返回錯誤消息。 #### 表單請求注意事項 現在自定義了單個表單請求的響應格式,應重寫該表單請求的 `failedValidation` 方法 ,并拋出一個包含自定義響應的 `HttpResponseException` 實例。 use Illuminate\Http\Exceptions\HttpResponseException; /** * 處理失敗的驗證嘗試。 * * @param \Illuminate\Contracts\Validation\Validator $validator * @return void * * @throws \Illuminate\Validation\ValidationException */ protected function failedValidation(Validator $validator) { throw new HttpResponseException(response()->json(..., 422)); } ### 文件系統 #### `files` 方法 `files` 方法與 `allFiles` 方法類似,會返回一個 `SqlFileInfo` 對象的數組。之前的 `files` 方法會返回一個字符串路徑名的數組。 ### 郵件 #### 未使用的參數 未使用的 `$data` 和 `$callback` 參數已從 `Illuminate\Contracts\Mail\MailQueue` 契約的 `queue` 和 `later` 方法中刪除 /** * 在隊列中發送新的電子郵件 * * @param string|array|MailableContract $view * @param string $queue * @return mixed */ public function queue($view, $queue = null); /** * n 秒后在隊列中發送新的電子郵件 * * @param \DateTimeInterface|\DateInterval|int $delay * @param string|array|MailableContract $view * @param string $queue * @return mixed */ public function later($delay, $view, $queue = null); ### 請求 #### `has` 方法 `$request->has` 方法現在對于空字符串和 `null` 將返回 `true`。新添加的 `$request->filled` 方法提供了之前的 `has` 方法的行為。 #### `intersect` 方法 `intersect` 方法已被移除。你只需在調用 `$request->only` 時使用 `array_filter` 來代替該方法: return array_filter($request->only('foo')); #### `only` 方法 `only` 方法現在只會返回請求中實際存在的屬性。如果你想保留該方法的舊功能,可以使用 `all` 方法來替代。 return $request->all('foo'); #### 輔助函數 `request()` 輔助函數 `request` 將不再檢索嵌套的鍵。如果有需要,你可以使用 `request` 中的 `input` 方法來達成此目的: return request()->input('filters.date'); ### 測試 #### 認證聲明 一些認證斷言被重命名為與框架的其他斷言更好的一致性: <!-- <div class="content-list" markdown="1"> --> - `seeIsAuthenticated` 被重命名為 `assertAuthenticated` ; - `dontSeeIsAuthenticated` 被重命名為 `assertGuest` ; - `seeIsAuthenticatedAs` 被重命名為 `assertAuthenticatedAs` ; - `seeCredentials` 被重命名為 `assertCredentials` ; - `dontSeeCredentials` 被重命名為 `assertInvalidCredentials` 。 <!-- </div> --> #### 偽造郵件 如果你使用偽造 Mail 來請求中是否有可用的**隊列** ,則應該使用 `Mail::assertQueued` 來代替 `Mail::assertSent` 。 這種區別允許你明確聲明郵件已在隊列中等待發送,而不是在請求期間發送。 ### 翻譯 #### `LoaderInterface` `Illuminate\Translation\LoaderInterface` 該接口已被移動至 `Illuminate\Contracts\Translation\Loader`。 ### 驗證 #### 驗證方法 所有的驗證器的驗證方法已由 `protected` 改為 `public` 。 ### 視圖 #### 動態的 「with」 變量 當允許動態的 `__call` 方法與視圖共享變量時,該變量將會自動使用駝峰式命名。舉例如下: return view('pool')->withMaximumVotes(100); `maximumVotes` 變量可以在模板中訪問,如下所示: {{ $maximumVotes }} ### 其他 你還可以查看 `laravel/laravel` 在 GitHub 中的更改。雖然這些更改不是必需的,但你可能希望將這些文件與應用程序保持同步。本升級指南中將介紹其中一些更改,而其他的則不會被介紹,例如更改配置文件或注釋。你可以使用 [GitHub 的比較工具](https://github.com/laravel/laravel/compare/5.4...master) 輕松查看你在意的變更的內容。 ## 譯者署名 | 用戶名 | 頭像 | 職能 | 簽名 | |---|---|---|---| | [@我做我的夢](https://laravel-china.org/users/18485) | <img class="avatar-66 rm-style" src="https://dn-phphub.qbox.me/uploads/avatars/18485_1503368993.jpeg?imageView2/1/w/100/h/100"> | 翻譯 | A new to Laravel,and hope Laravel is the last framework for me. | | [@JokerLinly](https://laravel-china.org/users/5350) | <img class="avatar-66 rm-style" src="https://dn-phphub.qbox.me/uploads/avatars/5350_1481857380.jpg"> | Review | Stay Hungry. Stay Foolish. | --- > {note} 歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動共創開源社區。 > > 轉載請注明:本文檔由 Laravel China 社區 [laravel-china.org](https://laravel-china.org) 組織翻譯,詳見 [翻譯召集帖](https://laravel-china.org/topics/5756/laravel-55-document-translation-call-come-and-join-the-translation)。 > > 文檔永久地址: https://d.laravel-china.org
                  <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>

                              哎呀哎呀视频在线观看