• Czas czytania ~2 min
  • 20.01.2023

W Laravel 9.41, mamy teraz kilka wygodnych konstruktorów statycznych dodanych do rzeczy, takich jak reguły enum, pliki i pliki obrazów.

Możesz konstruować te obiekty reguł bezpośrednio, ale lubię wygodę wiedząc, że mam do nich dostęp za pośrednictwem konstruktorów statycznych na głównym Reguła obiekt:

use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\File;
use Illuminate\Validation\Rules\ImageFile;

// Before
(new File())->default();
(new ImageFile())->dimensions(
    Rule::dimensions()->maxWidth(1000)->maxHeight(500)
);
new Enum(PostStatus::class);

// As of 9.41
Rule::file()->default()
Rule::imageFile()->dimensions(
    Rule::dimensions()->maxWidth(1000)->maxHeight(500)
);
Rule::enum(PostStatus::class);

Oto pełniejszy przykład, aby zobaczyć, jak wyglądają reguły sprawdzania poprawności przy użyciu main Reguła metody statyczne klasy:

use Illuminate\Validation\Rule;
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\Unique;

// Before
$request->validate([
    'status' => [
        'required',
        new Enum(PostStatus::class)
    ],
    'slug' => [
        'required',
        new Unique(Post::class);
    ],
]);
// After
$request->validate([
    'status' => [
        'required',
        // Newly added in 9.41
        Rule::enum(PostStatus::class)
    ],
    'slug' => [
        'required',
        // Note: unique has been available for a while
        Rule::unique(Post::class),
    ],
]);

Niektóre obiekty reguł nie mają przykładów w dokumentacji i uważam, że można je łatwiej wykryć za pomocą main Reguła metody klasowe. Jeśli zajrzysz do klas reguł pod Illuminate\Walidacja\Reguły namespace, w chwili pisania tego tekstu wygląda to tak:

  • Reguła bazy danych
  • Wymiary
  • wylicz
  • WykluczJeśli
  • istnieje
  • Plik
  • Plik graficzny
  • W
  • pływanie
  • Hasło
  • Zabronione Jeśli
  • WymaganeJeśli
  • Jedyny w swoim rodzaju

I'd encourage you to dive into the source to learn more about these useful objects oraz how they work. The dokumenty walidacyjne zawierają pomocne przykłady wykorzystania niektórych z tych narzędzi do tworzenia reguł, takich jak Plik and istnieje żeby wymienić tylko kilka.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297