laravel團隊在這周發布了 9.37 版本并且同時在 9.37 與 ?laravel 9.36 之間發布了一些補丁。本周得發布添加了對使用 vite 預加載資源的支持,新的嚴格違規處理程序,cli輸出詳細的視圖緩存,以及更多。
Verbose 視圖緩存
Andrew Brown 貢獻了在 view:cache 命令中傳遞 -v 的功能,以輸出命令正在查找的目錄,以及通過 -vv 來查看命令緩存中的每個文件。【相關推薦:laravel視頻教程】
php artisan view:cache -vv
這是一個例子,你會看到新安裝的 Laravel 9.37 的情況:
處理靜默丟棄與屬性丟失的方法
Aaron Francis 提供了為“靜默丟棄”和“缺少屬性”嚴格模式沖突注冊處理程序的功能:
Model::handleMissingAttributeViolationUsing( function ($model, $key) { // ... });Model::handleDiscardedAttributeViolationUsing( function ($model, $keys) { // ... });
傳遞救援報告參數的閉包
@foremtehan 貢獻了在使用 rescue() 時將可調用對象作為 $report 參數傳遞,以便你可以根據返回的布爾值有條件地報告錯誤:
rescue(fn() => 'error', fn() => 'rescue', function(Throwable $e){ return $e instanceof SomeException;});
支持使用 Vite 預加載資源
Tim MacDonald 使用 Vite 預加載當前頁面所需的資源。它現在是使用 Vite 的 Laravel 應用程序的默認行為。它如何工作的細節非常復雜,我建議閱讀 Pull Request #44096. 此外,你還可以了解有關背后的一般概念的更多信息 預加載關鍵資源以提高加載速度.
查詢構造器 RawValue方法
@eusonlito 貢獻了 rawValue() 方法,支持使用sql表達式來獲取值。 以下是一些使用示例:
$first = TripModel::orderBy('date_at', 'ASC') ->rawValue('YEAR(`date_at`)');$last = TripModel::orderBy('date_at', 'DESC') ->rawValue('YEAR(`date_at`)');$fullname = UserModel::where('id', $id) ->rawValue('CONCAT(`first_name`, " ", `last_name`)');
發行說明
您可以在下方查看新功能和更新的完整列表,以及9.36.0 和 9.37.0之間的差異。以下發行說明來自 changelog:
v9.37.0
添加
- 添加視圖緩存時的可選詳細輸出 (#44673)
- 允許傳遞閉包以挽救 $report 參數 (#44710)
- 支持使用 Vite 預加載資源 (#44096)
- 添加 Illuminate/mail/Mailables/Content::htmlString() (#44703)
修復
- 修復 model:show 注冊 getAttribute() 作為空訪問器 (#44683)
- 修復 PendingCommand 中輸出斷言的預期 (#44723)
v9.36.4
添加
- 為數據庫查詢生成器添加了原始值(并作為包裝器雄辯) (#44631)
- 添加 TransactionCommitting (#44608)
- 添加 dontIncludeSource 到 CliDumper 和 HtmlDumper (#44623)
- 添加 Illuminate/Filesystem/FilesystemAdapter::checksum() (#44660)
- 添加用于靜默丟棄和缺少屬性沖突的處理程序 (#44664)
恢復
- 恢復 “允許在沒有 id 的模型上使用 MustVerifyEmail 作為主key” (#44672)
更改
- 克隆請求時創建新的 json 參數包實例 (#44671)
- 防止在運行 env:decrypt 時啟動提供程序 (#44654)
v9.36.3
恢復
- 還原 view 事件的微優化 (#44653)
修復
- 修復了邊欄選項卡,清除視圖緩存 view:clear (#44643)
- 修復 Illuminate/database/Eloquent/Model::offsetExists() (#44642)
- 忽略組件的緩存和測試之間的工廠 (#44648)
更改
- Bump Testbench 依賴關系 (#44651)
v9.36.2
修復
- 確保在*存在時調用視圖創建者和合成器 (#44636)
v9.36.1
修復
- 修復使用 createBladeViewFromString 的 livewire 組件 (#pull)
原文地址:https://laravel-news.com/laravel-9-37-0
譯文地址:https://learnku.com/laravel/t/72839