PHPackages                             desole/laravel-generate-request - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. desole/laravel-generate-request

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

desole/laravel-generate-request
===============================

A Laravel command to generate Request classes with validation rules.

v1.0.1(1y ago)212MITPHPPHP ^8.0

Since Mar 19Pushed 1y ago1 watchersCompare

[ Source](https://github.com/MyDesole/laravel-generate-request)[ Packagist](https://packagist.org/packages/desole/laravel-generate-request)[ RSS](/packages/desole-laravel-generate-request/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (3)Used By (0)

---

Laravel Generate Request
========================

[](#laravel-generate-request)

Artisan-команда для автоматической генерации FormRequest классов в Laravel. Пакет позволяет быстро создавать FormRequest классы на основе модели, используя правила валидации из базы данных или кастомные правила, указанные в модели.

---

Установка
---------

[](#установка)

Установите пакет через Composer:

```
composer require desole/laravel-generate-request
```

---

Использование
-------------

[](#использование)

### Основная команда

[](#основная-команда)

php artisan request:make {Model} {Name} {Type} {--only-custom}

#### Параметры:

[](#параметры)

- `Model` (обязательный): Имя модели, на основе которой будет создан FormRequest класс. Модель должна иметь заполняемые поля (`$fillable`). Модель ищется в папке App/Models
- `Name` (обязательный): Имя создаваемого FormRequest класса. Например, UserStoreRequest.
- `Type` (опциональный): Тип FormRequest класса. Возможные значения:

    - store — поля из метода getStoreFields модели.
    - update — поля из метода getUpdateFields модели.
    - delete — поля из метода getDeleteFields модели.

    Если в имени (`Name`) содержится одно из этих слов (например, `UserStoreRequest`), тип будет определен автоматически.

    Если метод для указанного типа отсутствует в модели, будут использованы поля из $fillable.
- `--only-custom` (опциональный): Если указан, в FormRequest класс попадут только те поля, которые явно указаны в методе модели для выбранного типа.

---

### Примеры использования

[](#примеры-использования)

#### 1. Генерация FormRequest для создания сущности (Store)

[](#1-генерация-formrequest-для-создания-сущности-store)

php artisan request:make User UserStoreRequest store

- Если в модели User есть метод getStoreFields, будут использованы его правила.
- Если метод отсутствует, будут использованы поля из $fillable.

#### 2. Генерация FormRequest для обновления сущности (Update)

[](#2-генерация-formrequest-для-обновления-сущности-update)

php artisan request:make User UserUpdateRequest update

- Если в модели User есть метод getUpdateFields, будут использованы его правила.
- Если метод отсутствует, будут использованы поля из $fillable.

#### 3. Генерация FormRequest с автоматическим определением типа

[](#3-генерация-formrequest-с-автоматическим-определением-типа)

php artisan request:make User UserStoreRequest

- Тип store будет определен автоматически из имени UserStoreRequest.

#### 4. Генерация FormRequest только с кастомными правилами

[](#4-генерация-formrequest-только-с-кастомными-правилами)

php artisan request:make User UserStoreRequest store --only-custom

- В FormRequest попадут только те поля, которые указаны в методе getStoreFields модели.

---

### Кастомные правила в модели

[](#кастомные-правила-в-модели)

Вы можете указать правила валидации непосредственно в модели. Для этого добавьте методы getStoreFields, getUpdateFields или getDeleteFields.

#### Пример модели:

[](#пример-модели)

```
{
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model { protected $fillable = ['name', 'email', 'password'];

public function getStoreFields()
{
    return [
        'email' => 'required|email|unique:users,email', // Кастомные правила
        'name', // Поле без правил (будут использованы правила из базы данных)
        'custom_field' => 'string|max:100', // Поле, которого нет в базе данных
    ];
}

public function getUpdateFields()
{
    return [
        'email' => 'required|email|unique:users,email,' . $this->id,
        'name' => 'nullable|string|max:255',
    ];
}

```

}

#### Правила:

[](#правила)

- Если поле указано без правил (например, `'name'`), будут использованы правила из базы данных.
- Если поле указано с правилами (например, `'email' => 'required|email'`), они будут использованы как есть.
- Если поле отсутствует в базе данных, оно будет добавлено с указанными правилами.

---

### Пример сгенерированного FormRequest

[](#пример-сгенерированного-formrequest)

#### Для команды:php artisan request:make User UserStoreRequest store

[](#для-командыphp-artisan-requestmake-user-userstorerequest-store)

#### Результат:namespace App\\Http\\Requests;

[](#результатnamespace-apphttprequests)

```
use Illuminate\Foundation\Http\FormRequest;

class UserStoreRequest extends FormRequest
    {
        public function rules()
        {
        return [
                'email' => ['required', 'email', 'unique:users,email'],
                'name' => ['required', 'string', 'max:255'],
                'password' => ['required', 'string', 'min:8'],
                'custom_field' => ['string', 'max:100'],
            ];
        }
    }

```

---

### Логика работы

[](#логика-работы)

1. Поля из базы данных:

    - Если поле есть в базе данных, но не указано в кастомных правилах, используются правила на основе типа данных, внешних ключей и уникальных индексов.
2. Кастомные поля:

    - Если поле указано в кастомных правилах, но отсутствует в базе данных, оно добавляется с указанными правилами.
    - Если поле указано в кастомных правилах без правил (пустая строка), но присутствует в базе данных, используются правила из базы данных.
3. Режим `--only-custom`:

    - В FormRequest попадают только те поля, которые явно указаны в кастомных правилах.

---

### Поддерживаемые типы данных

[](#поддерживаемые-типы-данных)

Пакет автоматически определяет правила валидации на основе типов данных в базе данных. Например:

- varchar(255) → string|max:255
- int → integer
- date → date
- json → array
- и т.д.

---

### Поддерживаемые базы данных

[](#поддерживаемые-базы-данных)

- Mysql
- Postgresql

---

### Лицензия

[](#лицензия)

Этот пакет распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для получения дополнительной информации.

---

### Автор

[](#автор)

- Автор: MyDesole

---

### Благодарности

[](#благодарности)

Спасибо за использование этого пакета! Если у вас есть предложения или вопросы, создайте issue на GitHub.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance46

Moderate activity, may be stable

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

416d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5c8e7715992e1d9813276a0f4bcf75ff635cadab6c505b5f0fd37e6199c8e946?d=identicon)[des\_ole](/maintainers/des_ole)

---

Top Contributors

[![MyDesole](https://avatars.githubusercontent.com/u/142290033?v=4)](https://github.com/MyDesole "MyDesole (11 commits)")

### Embed Badge

![Health badge](/badges/desole-laravel-generate-request/health.svg)

```
[![Health](https://phpackages.com/badges/desole-laravel-generate-request/health.svg)](https://phpackages.com/packages/desole-laravel-generate-request)
```

###  Alternatives

[carsdotcom/laravel-json-schema

Json Schema validation for Laravel projects

1036.7k3](/packages/carsdotcom-laravel-json-schema)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
