• Время чтения ~1 мин
  • 07.03.2023

Laravel 9 здесь, и есть некоторые новые функции, которые мы можем использовать.

Эта серия будет продолжением о фреймворке Laravel версии 9 и в каждой статье мы будем рассматривать новую функцию!

  1. Episode 1: Laravel 9: Stub Migrations
  2. Episode 2: Laravel 9: New Designs
  3. Episode 3: Laravel 9: New Helpers
  4. Episode 4: Laravel 9: Enums!
  5. Episode 5: Laravel 9: Full Text Index & SwiftMailer

И да! Наконец, у нас есть официальная поддержка Enums в php 8.1, хотя мы могли бы добавить их в фреймворк Laravel, используя сторонние пакеты, такие как spatie/enums.

Но что такое перечисления в php?

Это просто одноэлементные объекты, и синтаксис для их определения выглядит следующим образом:

laravel 9 enums

К счастью, мы можем сделать так много с Laravel Enums, и в этой статье мы рассмотрим некоторые из наиболее важных применений.

Laravel 9.x имеет возможность набирать подсказку на нашем маршруте - думайте, что это привязка маршрута-модели, но вместо модели у нас есть перечисления! Давайте посмотрим пример:

laravel 9 enums

и в web.php:

С этими кодами Laravel автоматически распознает тип категории, и если мы не пройдем ни один из предопределенных типов, он вернет ответ HTTP 404!

Мы можем использовать enum() метод в следующем примере для создания столбца с типом перечисления, просто будьте осторожны, выбрав имя собственное, потому что переименование enum столбца в настоящее время не поддерживается!

laravel 9 enums migrations

Теперь наш дорогой, Красноречивый ORM позволит нам добавить атрибуты к перечислениям PHP. Нам просто нужно использовать $casts массив свойств в желаемой модели:

laravel 9 enums casting

И мы можем получить доступ к атрибуту напрямую:

laravel 9 enums accessors

Согласно документам Laravel, почти все известные методы, которые мы используем в коллекциях, также доступны на перечислениях типа:

laravel 9 enums methods

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297