<?php namespace Illuminate\Validation; use Illuminate\Contracts\Validation\ValidationException; use Illuminate\Contracts\Validation\UnauthorizedException; // use name space /** * Provides default implementation of ValidatesWhenResolved contract. */ trait ValidatesWhenResolvedTrait {// other type of class can be use in more please /** * Validate the class instance. * * @return void */ public function validate() { $instance = $this->getValidatorInstance();// get Validator Instance if (! $this->passesAuthorization()) {// determine Authorization $this->failedAuthorization(); } elseif (! $instance->passes()) {// passes $this->failedValidation($instance);//failed Validation } }// Validate the class instance. /** * Get the validator instance for the request. * * @return \Illuminate\Validation\Validator */ protected function getValidatorInstance() { return $this->validator(); }//Get the validator instance for the request. /** * Handle a failed validation attempt. * * @param \Illuminate\Validation\Validator $validator * @return mixed * * @throws \Illuminate\Contracts\Validation\ValidationException */ protected function failedValidation(Validator $validator) { throw new ValidationException($validator); }// yes we need do some thing for the bad handle, the best way is throw exception // so this function name is failed validation /** * Determine if the request passes the authorization check. * * @return bool */ protected function passesAuthorization() { if (method_exists($this, 'authorize')) { return $this->authorize(); } return true; }// Determine if the request passes the authorization check. // if method_exists this /** * Handle a failed authorization attempt. * * @throws \Illuminate\Contracts\Validation\UnauthorizedException */ protected function failedAuthorization() { throw new UnauthorizedException;//throw new Exception }//Handle a failed authorization attempt }
[李景山php]每天laravel-20160929|ValidatesWhenResolved.php
原创
©著作权归作者所有:来自51CTO博客作者lijingsan1的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章