hocvt / laravel-validation
There is no license information available for the latest version (v6.0.1) of this package.
Laravel Validation Service
v6.0.1
2019-10-24 07:25 UTC
Requires
- php: >=7.2
- illuminate/support: ^6.0
- illuminate/validation: ^6.0
README
Installation
Add "prettus/laravel-repository": "1.1.*" to composer.json
"prettus/laravel-validation": "1.1.*"
Create a validator
The Validator contains rules for adding, editing.
Prettus\Validator\Contracts\ValidatorInterface::RULE_CREATE Prettus\Validator\Contracts\ValidatorInterface::RULE_UPDATE
In the example below, we define some rules for both creation and edition
use \Prettus\Validator\LaravelValidator; class PostValidator extends LaravelValidator { protected $rules = [ 'title' => 'required', 'text' => 'min:3', 'author'=> 'required' ]; }
To define specific rules, proceed as shown below:
use \Prettus\Validator\LaravelValidator; class PostValidator extends LaravelValidator { protected $rules = [ ValidatorInterface::RULE_CREATE => [ 'title' => 'required', 'text' => 'min:3', 'author'=> 'required' ], ValidatorInterface::RULE_UPDATE => [ 'title' => 'required' ] ]; }
Custom Error Messages
You may use custom error messages for validation instead of the defaults
protected $messages = [ 'required' => 'The :attribute field is required.', ];
Or, you may wish to specify a custom error messages only for a specific field.
protected $messages = [ 'email.required' => 'We need to know your e-mail address!', ];
Custom Attributes
You too may use custom name attributes
protected $attributes = [ 'email' => 'E-mail', 'obs' => 'Observation', ];
Using the Validator
use \Prettus\Validator\Exceptions\ValidatorException; class PostsController extends BaseController { /** * @var PostRepository */ protected $repository; /** * @var PostValidator */ protected $validator; public function __construct(PostRepository $repository, PostValidator $validator){ $this->repository = $repository; $this->validator = $validator; } public function store() { try { $this->validator->with( Input::all() )->passesOrFail(); // OR $this->validator->with( Input::all() )->passesOrFail( ValidatorInterface::RULE_CREATE ); $post = $this->repository->create( Input::all() ); return Response::json([ 'message'=>'Post created', 'data' =>$post->toArray() ]); } catch (ValidatorException $e) { return Response::json([ 'error' =>true, 'message' =>$e->getMessage() ]); } } public function update($id) { try{ $this->validator->with( Input::all() )->passesOrFail( ValidatorInterface::RULE_UPDATE ); $post = $this->repository->update( Input::all(), $id ); return Response::json([ 'message'=>'Post created', 'data' =>$post->toArray() ]); }catch (ValidatorException $e){ return Response::json([ 'error' =>true, 'message' =>$e->getMessage() ]); } } }
Author
Anderson Andrade - contato@andersonandra.de
Credits
http://culttt.com/2014/01/13/advanced-validation-service-laravel-4/