manzadey / request-rules-fill
用于创建Laravel请求规则的类
v1.1
2020-08-20 18:56 UTC
Requires
- php: >=7.3
Requires (Dev)
- phpunit/phpunit: 9.3.*
This package is auto-updated.
Last update: 2024-09-25 08:34:04 UTC
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)); } }