somosyampi / laravel-validation
There is no license information available for the latest version (v1.6.0) of this package.
Laravel Validation Service
v1.6.0
2024-03-19 20:05 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.4|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/validation: ~5.4|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
This package is auto-updated.
Last update: 2024-11-06 15:34:47 UTC
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/