定制 manzadey/request-rules-fill 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

manzadey/request-rules-fill

Composer 安装命令:

composer require manzadey/request-rules-fill

包简介

Class for create rules for Laravel requests

README 文档

README

Данный класс предназначен для красивого (ИМХО) и упрощенного заполнения правил валидации в реквестах.

Установка:

composer require manzadey/request-rules-fill

Как пользоваться:

use Manzadey\RequestRulesFill\RequestRulesFill;

$rules = new RequestRulesFill;

Добавляем поля и правила валидации:

$rules->fields('name', 'description')->rule('string', 'required');

Заменяем правило в поле:

$rules->replaceRule('slug', 'unique:articles', Rule::unique('articles')->ignore($this->route('article')->id));

Добавляем к полю правило:

$rules->addRuleToField('slug', 'string', 'min:2');

Выводим правила в виде массива:

$rules->get();

Наглядный пример использования данного класса: Создаем класс ArticleStoreRequest, в нем создадим метод makeRules и создадим новый объект RequestRulesFill:

namespace App\Http\Requests\Admin\Article;

use Manzadey\RequestRulesFill\RequestRulesFill;
use Illuminate\Foundation\Http\FormRequest;

class ArticleStoreRequest extends FormRequest
{
    public function rules() : array
    {
        return $this->makeRules()->get();
    }

    public function makeRules() : RequestRulesFill
    {
        $rules = new RequestRulesFill();
        $rules->fields('show', 'top')->rule('nullable', 'boolean');
        $rules->fields('name')->rule('required', 'string', 'min:3');
        $rules->fields('slug')->rule('nullable', 'string', 'alpha_dash', 'min:3', 'unique:articles');
         $rules->fields('description', 'description_short')->rule('nullable', 'string');
         
        return $rules;
    }
}

Далее создаем класс ArticleUpdateRequest, который унаследует класс ArticleStoreRequest с его правилами:

namespace App\Http\Requests\Admin\Article;

use Illuminate\Validation\Rule;

class ArticleUpdateRequest extends ArticleStoreRequest
{
    public function rules() : array
    {
        return $this->makeRules()->get();
    }

    public function makeRules() : RequestRulesFill
        {
            return parent::makeRules()->replaceRule('slug', 'unique:articles', Rule::unique('articles')->ignore($this->route('article')->id));
        }
}

统计信息

  • 总下载量: 49
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-08-14

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固