您的位置:首页 > 编程语言 > PHP开发

[李景山php]每天laravel-20160929|ValidatesWhenResolved.php

2016-07-27 09:10 330 查看
<?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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: