Table des matières
Syntaxe de courrier électronique alternative
Eloquent “严格”模式
使用资源路由加载废弃模型
发行说明
v9.35.0
添加
修复
修改
Maison cadre php Laravel Laravel 9.35 est sorti ! Voyez-vous quels sont les nouveaux changements ?

Laravel 9.35 est sorti ! Voyez-vous quels sont les nouveaux changements ?

Oct 27, 2022 pm 04:05 PM
laravel

La colonne tutorielle suivante de Laravel vous présentera les modifications apportées à la dernière version de Laravel 9.35. J'espère qu'elle sera utile à tout le monde !

L'équipe Laravel a publié la version 9.35, qui propose une nouvelle et intéressante syntaxe de courrier électronique alternative, une fonctionnalité de « mode strict » éloquent, et bien plus encore.

Syntaxe de courrier électronique alternative

Taylor Otwell a contribué à une syntaxe de courrier électronique en renvoyant "un objet compact qui spécifie le contenu et les propriétés pouvant être envoyés par courrier électronique".

Voici un exemple de description de sa pull request :

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Mail\Mailables\Attachment;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class InvoicePaid extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * 创建一个邮件实例
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * 获取邮件信封
     *
     * @return \Illuminate\Mail\Mailables\Envelope
     */
    public function envelope()
    {
        return new Envelope(
            subject: 'Invoice Paid',
            cc: [new Address('foo@example.com', 'Example Name')],
            tags: [],
            metadata: [],
        );
    }

    /**
     * 获取邮件内容定义
     *
     * @return \Illuminate\Mail\Mailables\Content
     */
    public function content()
    {
        return new Content(
            view: 'html-view-name',
            text: 'text-view-name',
        );
    }

    /**
     * 获取邮件的附件
     *
     * @return \Illuminate\Mail\Mailables\Attachment[]
     */
    public function attachments()
    {
        return [
            Attachment::fromPath('/path/to/file'),
        ];
    }
}
Copier après la connexion

La manière traditionnelle de définir les e-mails à l'aide de build() ne sera pas supprimée. Ce que j'aime dans l'exemple ci-dessus, c'est que l'utilisation des paramètres nommés de PHP 8 est beaucoup plus claire. build() 定义邮件的传统方式不会被删除。 我喜欢上面的例子是因为使用 PHP 8 的命名参数更一目了然。

Eloquent “严格”模式

Chris Morrell 和 Taylor Otwell 合作开发了 Eloquent 严格模式,该模式支持以下功能:

  • 没有延迟加载
  • 分配不可填充属性时的例外情况
  • 访问未检索或不存在的属性的异常

要在开发中使用严格模式,方法是将以下内容添加到已注册服务提供者的 boot() 方法中:

Model::shouldBeStrict();
Copier après la connexion

shouldBeStrict() 方法是启用以下所有功能的快捷方式:

Model::preventLazyLoading();
Model::preventSilentlyDiscardingAttributes();
Model::preventsAccessingMissingAttributes();
Copier après la connexion

使用资源路由加载废弃模型

Andrew Brown 提供了使用以下路由语法加载带有资源路由的废弃模型的能力:

// 所有终结点
Route::resource('users', UserController::class)->withTrashed();

// 仅`显示`
Route::resource('users', UserController::class)->withTrashed(['show']);
Copier après la connexion

发行说明

你可以在GitHub上看到下面完整的新功能和更新列表以及[9.34.0]和9.35.0](github.com/laravel/framework/compa...) 之间的区别。以下发行说明直接来自 changelog:

v9.35.0

添加

  • 允许为资源路由加载废弃模型 (#44405)
  • 添加到 Illuminate/Database/Eloquent/Model::shouldBeStrict() 和其他 (#44283)
  • 没有解析控制器的控制器中间件 (#44516)
  • 选择可邮寄的语法 (#44462)

修复

  • 修复自引用多对多关系中的聚合函数(withSum 等)问题(#44286)
  • 修复了使用静态类属性作为模板属性的问题 (#44473)
  • Traversable 在 Enumerate Values 中应该优先于 JsonSerializable(#44456)
  • 修复了make:cast --inbound,所以它是一个布尔选项,而不是值 (#44505)

修改

  • 测试方法。 使用 json_encode 使错误消息更具可读性(#44397)
  • Model::without Timestamps()
  • Mode « strict » éloquent
  • Chris Morrell et Taylor Otwell ont collaboré pour développer le mode strict éloquent, qui prend en charge les fonctionnalités suivantes :
    • Pas de chargement paresseux
    • Exceptions lors de l'attribution de propriétés non remplissables
    • Accès non récupéré ou exception pour une propriété inexistante
    • Pour utiliser le mode strict en développement, ajoutez ce qui suit à la méthode boot() d'un fournisseur de services enregistré :
    • rrreee
    • Le ShouldBeStrict() est un raccourci pour activer tous les éléments suivants :
    • rrreee
    Chargement de modèles obsolètes à l'aide d'itinéraires de ressources

    Andrew Brown offre la possibilité de charger des modèles obsolètes avec des itinéraires de ressources en utilisant la syntaxe de routage suivante :

    rrreeeNotes de version

    Vous pouvez voir la liste complète des nouvelles fonctionnalités et mises à jour ci-dessous ainsi que la différence entre [9.34.0] et 9.35.0](github.com/laravel/framework/compa...) sur GitHub. Les notes de version suivantes sont tirées directement du journal des modifications :

    v9.35.0

    Ajouté🎜
      🎜Autoriser le chargement de modèles obsolètes pour le routage des ressources (#44405)🎜🎜Ajouté à Illuminate /Database/Eloquent/Model ::shouldBeStrict() et autres (#44283) 🎜🎜Le middleware du contrôleur n'analyse pas les contrôleurs (#44516) 🎜🎜Sélectionnez la syntaxe mailable (#44462) 🎜🎜🎜Corrigé🎜
        🎜 Correction du problème des fonctions d'agrégation (withSum, etc.) dans les relations plusieurs-à-plusieurs auto-référentielles (# 44286) 🎜🎜 Correction du problème de l'utilisation des propriétés de classe statiques comme propriétés de modèle (# 44473) 🎜🎜 Traversable devrait avoir la priorité sur JsonSerialalisable dans Enumerate Values ​​(# 44456) 🎜🎜 Correction de make:cast --inbound donc c'est une option booléenne plutôt qu'une valeur (#44505) 🎜🎜🎜Modification 🎜
          🎜méthode de test. Utilisez json_encode pour rendre les messages d'erreur plus lisibles (#44397) 🎜🎜Laissez Model::without Timestamps() renvoyer la valeur de retour du rappel (#44457) 🎜🎜Chargez uniquement les modèles obsolètes sur les routes pertinentes ( #44478) 🎜🎜Ajoutez des extensions PHP supplémentaires à la fonction ShouldBlockPhpUpload (#44512) 🎜🎜Enregistrez les roulettes cutInternals pour les objets particulièrement bruyants (#44514) 🎜🎜Utilisez la méthode get pour accéder aux paramètres régionaux de l'application (#44521) 🎜🎜Renvoyer uniquement une réponse non vide à partir du canal (09d53ee, 3944a3e) 🎜🎜Corriger la correspondance du canal (#44531) 🎜🎜Migrer le composant de messagerie (#44527) 🎜🎜🎜🎜Adresse d'origine : https://laravel-news.com/laravel-9 -35-0🎜 🎜Adresse de traduction : https://learnku.com/laravel/t/72658🎜🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Comment obtenir le code de retour lorsque l'envoi par e-mail échoue à Laravel? Apr 01, 2025 pm 02:45 PM

    Méthode pour obtenir le code de retour lorsque l'envoi par e-mail de Laravel échoue. Lorsque vous utilisez Laravel pour développer des applications, vous rencontrez souvent des situations où vous devez envoyer des codes de vérification. Et en réalité ...

    La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? La tâche de calendrier Laravel n'est pas exécutée: que dois-je faire si la tâche n'est pas en cours d'exécution après le calendrier: Exécuter la commande? Mar 31, 2025 pm 11:24 PM

    Laravel Schedule Tâche d'exécution de dépannage non réactif Lorsque vous utilisez la planification des tâches de calendrier de Laravel, de nombreux développeurs rencontreront ce problème: Schedule: Exécuter ...

    Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Dans Laravel, comment gérer la situation où les codes de vérification ne sont pas envoyés par e-mail? Mar 31, 2025 pm 11:48 PM

    La méthode de traitement de l'échec de l'e-mail de Laravel à envoyer le code de vérification est d'utiliser Laravel ...

    Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Comment implémenter la fonction de table personnalisée de clic pour ajouter des données dans l'administrateur DCAT? Apr 01, 2025 am 07:09 AM

    Comment implémenter la fonction du tableau de Cliquez sur personnalisé pour ajouter des données dans DCATADMIN (Laravel-Admin) lors de l'utilisation de DCAT ...

    Laravel - Serveur de vidage Laravel - Serveur de vidage Aug 27, 2024 am 10:51 AM

    Laravel - Dump Server - Le serveur de dump Laravel est livré avec la version de Laravel 5.7. Les versions précédentes n'incluent aucun serveur de dump. Le serveur de vidage sera une dépendance de développement dans le fichier laravel/laravel composer.

    Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Partage de connexion Laravel Redis: pourquoi la méthode de sélection affecte-t-elle d'autres connexions? Apr 01, 2025 am 07:45 AM

    L'impact du partage des connexions redis dans Laravel Framework et sélectionnez Méthodes Lors de l'utilisation de Laravel Framework et Redis, les développeurs peuvent rencontrer un problème: grâce à la configuration ...

    Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Laravel Multi-Lenant Extension Stancl / Tenancy: Comment personnaliser l'adresse hôte d'une connexion de base de données de locataire? Apr 01, 2025 am 09:09 AM

    Connexion de la base de données des locataires personnalisés dans le package d'extension multi-locataire Laravel Stancl / location Lors de la construction d'applications multi-locataires à l'aide du package d'extension multi-locataire Laravel Stancl / location, ...

    Laravel – URL de l'action Laravel – URL de l'action Aug 27, 2024 am 10:51 AM

    Laravel - URL d'action - Laravel 5.7 introduit une nouvelle fonctionnalité appelée « URL d'action appelable ». Cette fonctionnalité est similaire à celle de Laravel 5.6 qui accepte la méthode string in action. L'objectif principal de la nouvelle syntaxe introduite par Laravel 5.7 est de diriger

    See all articles