Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама

Laravel Data

spatie/laravel-data
4.23.0 13 1,774 39.2M 8 травня 2026
На GitHub

Типізовані об'єкти даних замість масивів: один клас описує валідацію, серіалізацію в JSON, TypeScript-типи і перетворення з запиту чи моделі. Знімає дублювання між FormRequest, ресурсом і DTO.

2

Поділитись

README

Logo for laravel-data

Powerful data objects for Laravel

Latest Version on Packagist Tests PHPStan Check & fix styling Total Downloads

This package enables the creation of rich data objects which can be used in various ways. Using this package you only need to describe your data once:

  • instead of a form request, you can use a data object
  • instead of an API transformer, you can use a data object
  • instead of manually writing a typescript definition, you can use... 🥁 a data object

A laravel-data specific object is just a regular PHP object that extends from Data:

use Spatie\LaravelData\Data;

class SongData extends Data
{
    public function __construct(
        public string $title,
        public string $artist,
    ) {
    }
}

By extending from Data you enable a lot of new functionality like:

  • Automatically transforming data objects into resources (like the Laravel API resources)
  • Transform only the requested parts of data objects with lazy properties
  • Automatically creating data objects from request data and validating them
  • Automatically resolve validation rules for properties within a data object
  • Make it possible to construct a data object from any type you want
  • Add support for automatically validating data objects when creating them
  • Generate TypeScript definitions from your data objects you can use on the frontend
  • Save data objects as properties of an Eloquent model
  • And a lot more ...

Why would you be using this package?

  • You can be sure that data is typed when it leaves your app and comes back again from the frontend which makes a lot less errors
  • You don't have to write the same properties three times (in a resource, in a data transfer object and in request validation)
  • You need to write a lot less of validation rules because they are obvious through PHP's type system
  • You get TypeScript versions of the data objects for free

Are you a visual learner?

In this talk, given at Laracon, you'll see an introduction to Laravel Data.

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Installation

You can install the package via composer:

composer require spatie/laravel-data

Read the installation notes on the docs site: https://spatie.be/docs/laravel-data/v4/installation-setup.

Documentation

You will find full documentation on the dedicated documentation site.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Схожі пакети

Laravel Query Builder

spatie/laravel-query-builder

Легко будуйте Eloquent-запити на основі запитів від API.

4,469 7.3.5 13 11

Eloquent Sluggable

cviebrock/eloquent-sluggable

Легке створення слагів для ваших моделей Eloquent у Laravel.

3,997 13.0.1 13 44

Laravel Auditing

owen-it/laravel-auditing

Пакет для аудиту змін Eloquent моделей у Laravel, що дозволяє автоматично відстежувати та записувати всі модифікації даних.

3,457 v14.0.6 13 7

Sushi

calebporzio/sushi

Додатковий драйвер для Eloquent, який дозволяє працювати з масивами даних як з повноцінними Eloquent моделями.

3,003 v2.5.4 13 16

Iseed

orangehill/iseed

Генерує новий файл seed для Laravel на основі даних з існуючої таблиці бази даних.

2,897 v3.8.1 13 6

Eloquent Has Many Deep

staudenmeir/eloquent-has-many-deep

Laravel Eloquent відносини HasManyThrough з необмеженою кількістю рівнів вкладеності.

2,870 v1.22.1 8