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
其他信息
- 授权协议: MIT
- 更新时间: 2020-08-14